我有以下表数据。
--------------
|ID | status |
--------------
| 1 | 0 |
| 2 | 1 |
| 3 | 1 |
| 4 | 0 |
| 5 | 1 |
| 6 | 0 |
| 7 | 1 |
| 8 | 1 |
| 9 | 0 |
--------------
现在有一些技术原因我想更新我的表格数据记录0
到N
和1
到Y
,所以任何人都知道如何处理在单个更新查询中。
预期结果:
--------------
|ID | status |
--------------
| 1 | N |
| 2 | Y |
| 3 | Y |
| 4 | N |
| 5 | Y |
| 6 | N |
| 7 | Y |
| 8 | Y |
| 9 | N |
--------------
先谢谢
答案 0 :(得分:3)
假设status
是一个字符串,您只需:
update t
set status = (case when status = '0' then 'N' else 'Y' end)
where status in ('0', '1');
如果status
是数字,则首先需要更改其类型。
答案 1 :(得分:2)
如果您在状态字段中只有0和1,则可以使用以下查询。如果status字段的数据类型为INT,则将其更改为varchar。
update `order` SET status = CASE WHEN status = 0 THEN 'N' ELSE 'Y' END
答案 2 :(得分:1)
试试这个。
update 'tablename' set status= if(status=0,'N','Y') where status in('0','1');
确保您的字段类型为varchar for status