MySQL更新字段使用JSON格式

时间:2016-05-06 12:18:23

标签: php mysql json

如何更新和复制同一个表中的数据,但新数据是JSON格式的数据。

我希望更新的字段为: {“t”:“token1”,“s”:“secret1”}

DB user_api table:

(id) (token) (secret) (api)
---------------------------
 1   token1  secret1  NULL

更新查询:

UPDATE user_api SET api = '{"t":"' +token+ '", "s":"' +secret+ '"}';

2 个答案:

答案 0 :(得分:4)

使用CONCAT

UPDATE user_api SET api = CONCAT('{"t":"', token, '", "s":"', secret, '"}');

答案 1 :(得分:0)

请改用JSON_SET()功能。

UPDATE `user_api` SET `api` = JSON_SET(`api`,'$.t',token,'$.s',secret) WHERE ...

这可以帮助您摆脱所有CONCAT内容。如果指定字段中不存在键,则JSON_SET()函数插入键/值对。如果存在,则函数更新值。

如果要在密钥不存在时插入,可以使用JSON_INSERT()功能。或者,如果您希望在密钥存在时更新值,则可以使用JSON_REPLACE()函数。