【问题标题】:Create SQL column relative to another相对于另一个创建 SQL 列
【发布时间】:2014-01-02 10:52:04
【问题描述】:

我有一列具有不同的值:

1 
2 
4 
8

我想根据这些值在同一个表中创建一个新列。

例如,如果值为1 or 4,我想在OKNOT OK中显示对应的行,其余部分。

喜欢:

1 OK 
2 NOT OK 
4 OK 
8 NOT OK 

我认为我们应该使用if条件,但是如何与表中的列值同时创建?

【问题讨论】:

  • 如果 1 和 4 总是正常,而 2 和 8 总是不正常,为什么不为此创建一个新表并将它们加入这个值呢?如果出现 5 会发生什么?
  • @Yakyb 他说“不好”休息。我认为这也适用于 5。

标签: mysql sql heidisql


【解决方案1】:

您想要表中的新列还是仅在 SELECT 输出中?如果您需要新的表列,请添加它,然后运行 ​​UPDATE 查询。

UPDATE `mytable`
SET `result` = CASE 
   WHEN id in (1,4) THEN 'ok'
   ELSE 'not ok' END;

SQL Fiddle

【讨论】:

    【解决方案2】:

    既然你说“我想展示”,我就给你一些 If Snippets

    这就是它的工作原理,简单来说:

    SELECT IF(field= '1', 'OK', 'NOT OK') as Myfield
    FROM  MyTable
    

    SELECT IF(field= '1', 'OK', IF(field= '4', 'OK', 'NOT OK')) as Myfield
    FROM  MyTable
    
    ;So here the result will be `OK` if there is any 1, 4 or else `NOT OK`
    

    Here 是关于 If 条件的 MySQL 文档

    【讨论】:

      【解决方案3】:

      最好使用 Case 声明。

      SELECT 
      Case when id in (1,4) Then 'Ok' Else 'Not Ok' End as Myfield
      FROM  MyTable
      

      Fiddle

      【讨论】:

        猜你喜欢
        • 2022-09-30
        • 2012-12-14
        • 1970-01-01
        • 2014-08-11
        • 2018-03-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多