如何更新和复制同一个表中的数据,但新数据是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+ '"}';
答案 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()
函数。