【问题标题】:Simple SQL if/else clause fails简单的 SQL if/else 子句失败
【发布时间】: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

标签: sql mysql


【解决方案1】:

tablel(L 减号)而不是 table1(第一个)?

【讨论】:

  • +1 好地方,尽管我认为这不会产生语法错误。
【解决方案2】:

我用 case 语句代替了它。感谢马丁的线索! SQL: IF clause within WHERE clause

【讨论】:

    猜你喜欢
    • 2016-09-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-26
    • 2013-08-18
    相关资源
    最近更新 更多