简单的IF ..否则.. mysql查询

时间:2013-09-10 10:25:42

标签: mysql sql

set @var=1;
if @var>1 then 
select * from client;
else
select * from otherTable;
end if;

这是我的mysql查询。你们能指出为什么会出现错误吗? 这真的是在冒我的脑筋。

显示的错误是

IF @var >1 THEN SELECT *
FROM client;

MySQL said: Documentation
#1064 - 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 'if @var>1 then
select * from client' at line 1 

快速回答会非常有用。

2 个答案:

答案 0 :(得分:3)

在MySQL中,您必须在触发器或过程中执行该操作。

如果没有围绕它的功能,你不能只运行脚本代码。

delimiter |
CREATE PROCEDURE simpleproc ()
BEGIN
   set @var=1;
   if @var>1 then 
      select * from client;
   else
      select * from otherTable;
   end if;
END;
|
delimiter ;

之后你可以用

执行它
call simpleproc()

答案 1 :(得分:1)

如果两个表具有相同的列,则可以使用UNION查询,如下所示:

SELECT * FROM Client WHERE @var>1
UNION ALL
SELECT * FROM otherTable WHERE @var<=1

请参阅示例here