Mysql SQL过程无法使用函数,如果(exper1、exper2、exper3)
Mysql的版本是5.6.25。 代码运行时,将显示: [Err]1064-您的SQL语法有错误;查看与您的MySQL服务器版本对应的手册,了解使用near的正确语法$$ 第4行的分隔符'Mysql SQL过程无法使用函数,如果(exper1、exper2、exper3),mysql,sql,Mysql,Sql,Mysql的版本是5.6.25。 代码运行时,将显示: [Err]1064-您的SQL语法有错误;查看与您的MySQL服务器版本对应的手册,了解使用near的正确语法$$ 第4行的分隔符' DELIMITER $$ DROP PROCEDURE IF EXISTS `TEST` $$ CREATE PROCEDURE `TEST`(IN aaa INT) BEGIN SET @abc=if(1>2,3,2); END $$ DELIMITER ; 但如果我
DELIMITER $$
DROP PROCEDURE IF EXISTS `TEST` $$
CREATE PROCEDURE `TEST`(IN aaa INT)
BEGIN
SET @abc=if(1>2,3,2);
END $$
DELIMITER ;
但如果我将上述两种情况分开;
他们会跑得很好
SET @abc=if(1>2,3,2);
如果我们将关键字集更改为select,它们也会运行良好
DELIMITER $$
DROP PROCEDURE IF EXISTS `TEST` $$
CREATE PROCEDURE `TEST`(IN aaa INT)
BEGIN
-- SELECT @abc=if(1>2,3,2);
END $$
DELIMITER ;
我不知道为什么,谁能告诉我?
谢谢 我无法从MySQL命令行重现该问题 mysql>使用'test'; 数据库已更改 mysql>分隔符$$ mysql>删除过程(如果存在)`TEST`$$ 查询正常,0行受影响,1条警告0.00秒 mysql>在aaa INT中创建过程“TEST” ->开始 ->设置@abc=IF1>2,3,2; ->结束$$ 查询确定,0行受影响0.00秒 mysql>分隔符; mysql>调用`TEST`NULL; 查询确定,0行受影响0.00秒 mysql>SELECT@abc; +---+ |@abc| +---+ | 2 | +---+ 设置为1行0.00秒
你是怎么管理这些的?请记住,分隔符本身不是MySQL命令;它由您使用的客户端识别,而不是由服务器识别。如果删除最后一个分隔符会发生什么情况;在第一个例子的末尾,你得到了什么?是的。您运行的代码中是否有一些奇怪的隐藏字符@windy?我认为$$和分隔符之间有一个不间断的空格可能会导致这些症状。您是从某处复制并粘贴代码,还是自己键入代码?非常感谢!昨天我在名为Navicat for MySQL的软件上播放了代码!然后我转向cmd,他们今天跑得很好!