我有案件更新的问题
我有一张叫字典的桌子
+-----------------------------------------------------------------------+
| id | table_name | col_name | size | precis | data_type |
+------+---------------+-----------+----------+------------+------------+
| 1 | 'user' | 'id' | null | 10 | 'int' |
| 2 | 'user' | 'name' | 255 | null | 'varchar' |
| 3 | 'user' |'lastname' | 255 | null | 'varchar' |
| 4 | 'user' | 'age' | null | 2 | 'varchar' |
我尝试使用此查询
UPDATE diccionary SET
size = CASE WHEN id = 2 THEN 250 END,
data_type = CASE when id = 4 THEN 'int' END;
但是我得到这个错误
#1048 - Column 'data_type' cannot be null
我的查询有什么问题?谢谢
解决方法:
data_type列不能为null,因此您可以管理不等于4的情况,例如:分配varchar
UPDATE diccionary
SET size = CASE WHEN id = 2 THEN 250 END,
data_type = CASE when id = 4 THEN 'int' ELSE 'varchar' END;
标签:case,mysql
来源: https://codeday.me/bug/20191111/2021047.html