【发布时间】:2021-10-03 21:54:15
【问题描述】:
我正在使用JSON_REPLACE 更新键的值,但如果键不存在,我很难弄清楚如何在更新之前创建键。
这就是我的查询的样子。
$query_update = "UPDATE `forms` SET `conf` = JSON_REPLACE(`conf`, '$.title', '$title') WHERE id='32'";
知道如何在同一个查询中做到这一点吗?
更新
感谢下面 Juan Eizmendi 和 Salman A 的 cmets,将 JSON_REPLACE 更改为 JSON_SET 解决了这个问题。
更新后的查询如下所示
$query_update = "UPDATE `forms` SET `conf` = JSON_SET(`conf`, '$.title', '$title') WHERE id='32'";
【问题讨论】:
-
您可以使用JSON_SET(插入或更新)。
-
当然可以,但是如何检查该键是否存在于同一个查询中?
-
所以你想更新密钥(如果存在),如果它不创建 key/value 对,这就是
JSON_SET所做的。如果您只想检查密钥determine if a json value -
是的,我想先检查这对是否存在,如果存在则更新,否则创建。但不知道如何结合
JSON_REPLACE和JSON_SET -
@juan 你会做这个荣誉吗?
标签: mysql