简单的 SQL if/else 子句失败
Posted
技术标签:
【中文标题】简单的 SQL if/else 子句失败【英文标题】:Simple SQL if/else clause fails 【发布时间】:2010-12-31 11:28:29 【问题描述】:我正在尝试在 sql 中执行一个简单的 if/else 子句(使用 mysql/phpmyadmin 运行)。但我明白了 1064 - 您的 SQL 语法有错误
SET @age = 50;
IF @age > 60
THEN
Select `table1`.`Name` FROM table1 WHERE `Age` = 'Old'
ELSE
Select `table1`.`Name` FROM tablel WHERE `Age` = 'NotSoOld'
END IF;
怎么了?
【问题讨论】:
不知道。你可以改写为Select table1.Name FROM tablel WHERE Age = CASE WHEN @age > 60 THEN Old ELSE NotSoOld END
MySQL 确实有一些非常有用的错误消息。很棒,尤其是当你有 700 行 SQL 代码时,an error in its syntax
【参考方案1】:
tablel(L 减号)而不是 table1(第一个)?
【讨论】:
+1 好地方,尽管我认为这不会产生语法错误。【参考方案2】:我用 case 语句代替了它。感谢马丁的线索! SQL: IF clause within WHERE clause
【讨论】:
以上是关于简单的 SQL if/else 子句失败的主要内容,如果未能解决你的问题,请参考以下文章
如何在 SQL 查询中动态跳过没有 If else 的 where 子句?
ms sql server中where子句中的if else条件