MySql 更新大小写不能为空

标签 mysql case

我对案例更新有疑问

我有一个叫做字典的表

+-----------------------------------------------------------------------+
| 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 列不能为空,因此您只需处理不等于 4 的情况,例如:分配 varchar

UPDATE diccionary 
SET size = CASE WHEN id = 2 THEN 250 END,
data_type = CASE when id = 4 THEN 'int' ELSE 'varchar' END;

关于MySql 更新大小写不能为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42789786/

相关文章:

带有 LIKE 运算符的 Select 语句中的 MySQL 案例

search - 如何使用批处理搜索和替换区分大小写的字符串

mysql - Galera Mysql wsrep_cluster_status 保持断开连接

mysql - Rails 查询选择具有不同列的最后一条记录

android - 在android中的 ListView 上列出mysql的结果

php - 测验 PHP+MySQL 中的 "LOGIC"

带有某些 IF ELSE If ELSE 条件的 Mysql 查询

MySQL ORDER BY 取决于 CASE 顺序 ASC 或 DESC

mysql - mysql中选择案例中的案例

mysql - 无法启动 MySQL Galera 集群中的第二个节点