在MySQL中,我想通过IF-THEN语句比较用户定义的变量:
SET @num = 10;
IF @num > 7 then
select * from person;
ELSE
select name from person;
END IF;
我怎么能这么做呢? 目前,我在If@num>;7附近收到一个错误.
在MySQL中,我想通过IF-THEN语句比较用户定义的变量:
SET @num = 10;
IF @num > 7 then
select * from person;
ELSE
select name from person;
END IF;
我怎么能这么做呢? 目前,我在If@num>;7附近收到一个错误.
Compound statements个LIKE IF/THEN/ELSE仅在MySQL的存储 routine 语言中受支持.
这是手册中的内容:
本节介绍Begin...的语法.End复合语句和可在存储程序体中使用的其他语句:存储过程和函数、触发器和事件.
通常,如果您需要有条件地运行SQL查询,并且没有使用存储 routine ,则可以将条件逻辑放入一些客户端应用程序编程语言中,例如Java、Python、Go、PHP或您最喜欢的任何语言.
从最早的时候起,SQL就打算与其他编程语言结合使用.
如果您确实不能在客户端应用程序中编写代码,这里有一个解决方法,可以在SQL脚本中运行您的示例:
SET @num = 10;
SET @sql = IF(@num > 7,
'select * from person',
'select name from person');
PREPARE stmt FROM @sql;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
如果您有更复杂的条件代码,则此解决方法可能不切实际.