相对于另一个创建SQL列

时间:2014-01-02 10:52:04

标签: mysql sql heidisql

我有一个具有不同值的列:

1 
2 
4 
8

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

例如,如果值为1 or 4,我希望在OKNOT OK中显示相应的行。

像:

1 OK 
2 NOT OK 
4 OK 
8 NOT OK 

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

3 个答案:

答案 0 :(得分:1)

既然你说“我想要展示”,我会给你一些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文档

答案 1 :(得分:1)

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

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

SQL Fiddle

答案 2 :(得分:0)

更好地使用 Case 声明。

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

<强> Fiddle