jon*_*boy 0 mysql null select update
我正在使用 MySQL 和 PhpMyAdmin,我有一个名为的表items
- 结构如下;
+------+---------+------+---------+
| name | type | Null | Default |
+------+---------+------+---------+
| id | int(11) | No | None |
+------+---------+------+---------+
| year | int(4) | Yes | Null |
+------+---------+------+---------+
Run Code Online (Sandbox Code Playgroud)
在 PhpMyAdmin 中,我运行以下查询;
UPDATE `item` SET `item_publication_year` = '' WHERE `item_id` = '5'
Run Code Online (Sandbox Code Playgroud)
这将成功执行。
然后我运行这个查询;
SELECT * FROM `item` WHERE `item_id` = '5'
Run Code Online (Sandbox Code Playgroud)
这将成功执行并产生以下结果;
+-----+------+
| id | year |
+-----+------+
| 5 | 0 |
+-----+------+
Run Code Online (Sandbox Code Playgroud)
为什么是这个year
领域0
——不应该是NULL
吗?难道我做错了什么?
''
是一个空字符串,它不是一个NULL
值。
其他 DBMS 首先会理所当然地拒绝您的更新语句(因为将字符串分配给数字是无效的)。
如果你想设置一些东西,null
那么null
不要使用空字符串
UPDATE item
SET item_publication_year = null
WHERE item_id = 5
Run Code Online (Sandbox Code Playgroud)
您还应该为数据类型使用正确的文字类型。'5'
是一个字符串,它不是一个数字。5
是一个数字。不使用正确类型的文字可能会导致不使用索引。
归档时间: |
|
查看次数: |
1141 次 |
最近记录: |