我想创建一个像下面这样的简单函数来完成一项简单的任务:
DELIMITER $$
CREATE FUNCTION f(key TEXT, str TEXT) RETURNS INT
BEGIN
IF LOCATE(key, str) > 0 THEN
RETURN 1;
ELSE
RETURN 0;
END IF;
END $$
DELIMITER ;
但我收到了一个错误:
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that
corresponds to your MySQL server version for the right syntax to use near 'key T
EXT, str TEXT) RETURNS INT
BEGIN
IF LOCATE(key, str) > 0 THEN
R' at line 1
有什么问题?
答案 0 :(得分:3)
该函数有语法错误,因为key
是MySql中的保留字。解决方案:重命名参数或将key
放在反引号中,如下所示:
CREATE FUNCTION f(`key` TEXT, str TEXT) RETURNS INT
答案 1 :(得分:1)
key是mysql中的一个关键字,放在`之间或使用不同的名称。