下面的简单查询有什么问题?我试着用谷歌搜索但没有找到
IF 1 = 1 THEN
SELECT 1;
ELSE
SELECT 12;
END IF;
Run Code Online (Sandbox Code Playgroud)
您想要的是一个CASE
表达式,它是实现条件并得到每个主要数据库支持的标准 SQL 方法,
SELECT CASE WHEN 1 = 1 THEN 1 ELSE 12 END;
Run Code Online (Sandbox Code Playgroud)
或者你可以使用完全愚蠢的专有IF
声明
SELECT IF( 1=1, 1, 12 );
Run Code Online (Sandbox Code Playgroud)
我相信语法实际上是有效的;您可以在 MySQL 文档中找到类似的语句。
但是,它被认为是一个控制流语句,并且只允许在 MySQL 中的存储程序中使用。您没有说明这是在存储程序中,所以我假设它不是。如果是,请编辑您的问题以提供更多详细信息。
如果您尝试在存储程序之外执行此操作,请参阅Evan Carroll的回答。