【问题标题】:Multiple IF statements on MYSQLMYSQL 上的多个 IF 语句
【发布时间】:2012-03-27 18:07:41
【问题描述】:

我正在尝试在我的数据库结果中显示一些值,我正在使用此代码但我无法成功:

SELECT item_code, IF(category_code = 'HERR1', 'NO', 1) OR (category_code = 'COLN5', 'NO', 2) AS category_code, item_name, item_quantity FROM qa_items

编辑: 我想显示例如:

If category_code = 'HERR1'
 Display = 1
else if category_code = 'COLN5'
 Display = 2
End If

如果有人有任何想法,将不胜感激

【问题讨论】:

  • 好吧,选择语句不会导致基础数据发生任何变化。您需要改用 UPDATE 语句。
  • 您遇到了什么错误?你能发布预期和实际的输出吗?
  • 错误代码:1241。操作数应包含 1 列
  • 您能解释一下您要达到的目标吗?如果 category_code 既不是 'HERR1' 也不是 'COLN5' 你想显示 1 还是 2?
  • 请看我上次的编辑

标签: mysql if-statement multipleselection


【解决方案1】:

我宁愿使用CASE

SELECT item_code, 
CASE category_code 
WHEN 'HERR1' THEN 1
WHEN 'COLN5' THEN 2
ELSE 'NO'
END as category_code, item_name, item_quantity 
FROM qa_items

但是IF 也可以工作:IF(category_code='HERR1',1, IF(category_code='COLN5',2,'NO'))

【讨论】:

    【解决方案2】:

    你需要嵌套 if 语句

    SELECT item_code, IF(category_code = 'HERR1', 'NO', IF(category_code = 'COLN5', 1, 2)) AS category_code, item_name, item_quantity FROM qa_items
    

    那么第一个 if 将失败,嵌套 if 将评估

    【讨论】:

      【解决方案3】:

      这就是你所追求的吗?

      SELECT
        item_code,
        CASE category_code
          WHEN 'HERR1' THEN 1
          WHEN 'COLN5' THEN 2
          ELSE 'NO'
        END AS category_code,
        item_name,
        item_quantity
      FROM qa_items
      

      【讨论】:

        【解决方案4】:

        试试下面的

        SELECT item_code, CASE category_code WHEN 'HERR1' THEN 1 WHEN 'COLN5' THEN 0 ELSE 'NONE' END AS category_code, item_name, item_quantity FROM qa_items
        

        【讨论】:

          【解决方案5】:

          你可以试试这个。 在选择查询中使用 IF 并更新您想要的表;)

          创建表student(marks int,grade char);

          插入学生值(200,null),(120,null), (130,null);

          更新学生 a INNER JOIN (select s.marks, IF(s.marks>=200,'A',IF(s.marks>=130,'B','P')) AS Grade from student s) b on a .marks= b.marks SET a.Grade = b.Grade;

          【讨论】:

            猜你喜欢
            • 2013-10-11
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2013-01-09
            • 1970-01-01
            • 2013-01-28
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多