MySQL自定义函数调用不出结果
Posted Elan-_-lalala
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MySQL自定义函数调用不出结果相关的知识,希望对你有一定的参考价值。
自定义函数的代码:
DROP FUNCTION IF EXISTS fn_HrStaffBase_GetNameFromidCard
delimiter //
CREATE FUNCTION fn_HrStaffBase_GetNameFromidCard (a VARCHAR(30))
RETURNS VARCHAR(50)
begin
return (SELECT staff_name FROM hr_staff_base where idCard = a);
END //
-- ---------------------------------------------------------------------------------------------------------------------
函数调用查询:
select fn_HrStaffBase_GetNameFromidCard (\'299012234225\')
-- ------------------------------------------------------------------------------
出来都是 null,
处理方法:
新建库时时,必须
也可以修改数据库设置:右键数据库,鼠标点击编辑数据库
要设置数据库如下图:
原来设置的是:
数据库只能读取拉丁值,无法读取中文
所以导致调用函数结果为:
-- ---------------------------------------------------------------
修改数据库设置后 ,查询结果出现:
#################################################################################
有时候mysql不能建立自定义函数是因为该功能2未开启
输入 show variables like \'%func%\'; 命令
会看到 log_bin_trust_function_creators 的状态,如果是OFF表示自定义函数功能是关闭的
输入命令 set global log_bin_trust_function_creators=1;
可将 log_bin_trust_function_creators 开启自定义函数功能
但是这样设置是一个临时的方案,因为mysql自动重启后状态又会变为OFF,所以需要在
在服务启动时加上 “--log-bin-trust-function-creators=1 ”参数。 或在my.ini(my.cnf)中的[mysqld]区段中加上 log-bin-trust-function-creators=1。
以上是关于MySQL自定义函数调用不出结果的主要内容,如果未能解决你的问题,请参考以下文章
c语言中,在一个自定义函数里面只能调用一个自定义函数吗?可以调用多个吗?如果可以怎么调用?