检查你的命令行字符集,需要与数据库的一致。
不知道你这个问题是否已经解决, 如果还没有解决的话:#创建一个函数求(X^2+Y^2)的平方根:
#?表示与参数进行绑定,?不需要用引号引用,相当于在prepare的时候就把sql写死
PREPARE stmt1 FROM 'SELECT SQRT(POW(?,2) + POW(?,2)) AS result';
SET @X = 3;
SET @Y = 4;
EXECUTE stmt1 USING @X @Y;
输出:
result
5
解决MySQL存储函数中文乱码的问题可以尝试以下步骤:
确认MySQL字符集设置正确。可以使用以下命令查看当前MySQL的字符集:show variables like '%character%';
,确保character_set_server
和character_set_database
的值都是UTF-8。如果不是,则可以使用以下命令修改字符集设置:set character_set_server=utf8;
和set character_set_database=utf8;
确认存储函数代码文件的编码格式正确,应当是UTF-8编码格式。可以使用文本编辑器打开存储函数代码文件,确认编码格式是否为UTF-8。如果不是,则将其转换为UTF-8编码格式。
如果以上两步都没有解决问题,可以考虑使用Navicat等客户端工具进行存储函数的修改和使用,可能能够规避中文乱码问题。
如果以上步骤都不能解决问题,可能是其他未知因素造成的,需要更多详细信息进行分析和解决。
1.创建存储函数时指定 CHARACTER SET 参数为 utf8,或者将 mysql 的字符集配置为处理中文字符。
CREATE FUNCTION get_chinese_name(name VARCHAR(50)) RETURNS VARCHAR(50) CHARSET utf8mb4
2.或在 mysql 配置文件中添加配置来指定 mysql 的字符集为处理中文字符
[mysqld]
character-set-server=utf8mb4
collation-server=utf8mb4_general_ci