2

我有一列具有不同的值:

1 
2 
4 
8

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

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

喜欢:

1 OK 
2 NOT OK 
4 OK 
8 NOT OK 

我觉得我们应该使用一个if条件,但是如何与表中的列值同时创建呢?

4

3 回答 3

1

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

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

SQL小提琴

于 2014-01-02T11:04:24.190 回答
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`

是有关 If 条件的 MySQL 文档

于 2014-01-02T10:59:20.503 回答
0

更好的用语句。

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

小提琴

于 2014-01-02T11:17:13.033 回答