【发布时间】:2018-02-02 11:11:55
【问题描述】:
我想做什么,但我想这是不可能的:
我在用于保存翻译的列中有 JSON 数据。例如列描述值:{"de": "hi wie gehts?", "en": "hi, how are you?"}
现在我只想更新 "en" 属性。我知道JSON_REPLACE 可以做到这一点,但它的语法很奇怪,我必须先生成 SQL 代码才能做到这一点。
我正在寻找的是只发送{"en": "hi, how are you!?"} 的可能性,然后它应该保留"de" 属性并且只更新"en" 属性。
有 JSON_MERGE 函数,但这不是我想要的,但除此之外,这是我喜欢使用的语法。
是否有一些嵌套mysql函数的解决方法?
【问题讨论】:
-
试试:
JSON_SET(),见db-fiddle。 -
谢谢,但我知道这个功能。这不是我想做的。我想发送纯 JSON。
-
有了可用的 JSON 函数,要实现你所需要的并不容易。如果纯 JSON 始终只有一个键,您可以尝试db-fiddle 之类的方法,如果您的纯 JSON 中有多个键,则需要更复杂的东西来实现您的目标。
-
Dude wtf,你是我的英雄 :) ...我只是通过先删除然后合并的相同想法“解决”了这个问题,但我在后端代码中生成了删除函数字符串,而不是直接用mysql。您的解决方案要好一级。太感谢了!如果您想获得此答案的声誉,请随时添加答案,我会接受。否则,我将创建答案以使解决方案更好地被其他人看到。