使用MySQL的C中的IF&Else条件

使用MySQL的C中的IF&Else条件,mysql,mysql-workbench,Mysql,Mysql Workbench,当我在MySQL工作台的新查询编辑器窗口上编写基于条件选择表的if-else条件时,它给了我一个错误 这里1=1是一些条件 IF (1=1) then select 1; ELSE select 2; END IF; IF (1=1) then select 1; ELSE select 2; END IF; 错误代码:1064。您的SQL语法有错误;查看与您的MySQL服务器版本对应的手册,了解在第1行“IF 1=1然后选择1”附近使用的正确语法MySQL中的IF是一个函数。所以你

当我在MySQL工作台的新查询编辑器窗口上编写基于条件选择表的if-else条件时,它给了我一个错误

这里1=1是一些条件

IF (1=1) then 
select 1;
ELSE 
select 2;
END IF;

IF (1=1) then 
select 1;
ELSE 
select 2;
END IF;
错误代码:1064。您的SQL语法有错误;查看与您的MySQL服务器版本对应的手册,了解在第1行“IF 1=1然后选择1”附近使用的正确语法MySQL中的IF是一个函数。所以你可以试试这样的方法:

选择IF1=1,1,2 如果有更多条件,则将它们嵌套为:

选择 如果1=1,1, 如果2=2,2,3
但是两个查询的列数和类型应该相同,或者换句话说,“选择1”和“选择2”的列数和数据类型应该相同。请将代码放入存储过程中。使用架构树中的上下文菜单创建新过程并为其打开编辑器:


我的情况是,我需要根据条件选择不同的表。。如果var a=b,则我需要选择另一个表并需要执行差异操作请更新您需要从两个不同表中选择的问题,并且必须使用if/ELSE,因为这是家庭作业?在MSSQL中,此代码运行良好。。为什么在MySql中我们需要在procI中编写此代码我不知道MSSQL语法,但在MySql中,您想要执行的代码只允许在存储例程中执行。这是一个语法要求。这就是所谓的流控制语句。
SELECT 1 WHERE (1=1)
UNION ALL
SELECT 2 WHERE NOT (1=1)