我正在使用MySQL5.7。我有一个带有json列的表。
MySQL [test_db]> select * from mytable;
+----+-------+---------------------+
| id | name | hobby |
+----+-------+---------------------+
| 1 | Rahul | {"Game": "Cricket"} |
| 2 | Sam | null |
+----+-------+---------------------+
这里,对于row id=2,我想插入一个数据。是的-
update mytable set hobby = JSON_SET(hobby, '$.Game', 'soccer') where id = 2;
Query OK, 1 row affected (0.01 sec)
Rows matched: 1 Changed: 1 Warnings: 0
好像数据插入正确,但当我检查
MySQL [test_db]> select * from mytable;
+----+-------+---------------------+
| id | name | hobby |
+----+-------+---------------------+
| 1 | Rahul | {"Game": "Cricket"} |
| 2 | Sam | null |
+----+-------+---------------------+
数据没有插入,谁能给点提示,我这里缺什么。
谢谢。
1条答案
按热度按时间2g32fytz1#
hobby为null,并且不能将属性设置为null,因此请改用if语句,首先将null转换为空对象(或者将hobby初始化为空对象而不是null):
或者,使用coalesce:
看这里的小提琴。