mysql函数有且仅有一个返回值。

1418错误

1418 - This function has none of DETERMINISTIC, NO SQL, or READS SQL DATA in its declaration and binary logging is enabled (you might want to use the less safe log_bin_trust_function_creators variable)

mysql> show variables like 'log_bin_trust_function_creators';
+---------------------------------+-------+
| Variable_name                   | Value |
+---------------------------------+-------+
| log_bin_trust_function_creators | OFF   |
+---------------------------------+-------+
1 row in set (0.04 sec)

mysql> set @@global.log_bin_trust_function_creators='On';
Query OK, 0 rows affected (0.01 sec)

mysql> show variables like 'log_bin_trust_function_creators';
+---------------------------------+-------+
| Variable_name                   | Value |
+---------------------------------+-------+
| log_bin_trust_function_creators | ON    |
+---------------------------------+-------+
1 row in set (0.05 sec)

无参有返回

mysql> delimiter $
mysql> create function func_test() returns int
    -> begin
    -> declare var_count int default 0;
    -> select count(1) into var_count from t_user;
    -> return var_count;
    -> end $
Query OK, 0 rows affected (0.01 sec)

mysql> delimiter ;

mysql> select func_test();
+-------------+
| func_test() |
+-------------+
|           3 |
+-------------+
1 row in set (0.07 sec)

有参有返回

mysql> delimiter $

mysql> create function func_test_var(var_name varchar(20)) returns int
    -> begin
    -> declare var_id int;
    -> select id into var_id from t_user where username = var_name;
    -> return var_id;
    -> end $
Query OK, 0 rows affected (0.02 sec)

mysql> delimiter ;
mysql> select func_test_var('zhangsan');
+---------------------------+
| func_test_var('zhangsan') |
+---------------------------+
|                         1 |
+---------------------------+
1 row in set (0.05 sec)

查看函数

show create function [func name];

删除函数

drop function [func name];