我在表中的列存储在格式值:删除键:从JSON字符串存储在MySQL数据库
{"field1":"val1","field2":"val4"}
{"field1":"val2","field2":"val5"}
{"field1":"val3","field2":"val6"}
我需要删除所有字段1具有值(如“字段1”:” VAL1" ,‘字段1’:‘值2’,‘字段1’:‘VAL3’)和结果应该是
{"field2":"val4"}
{"field2":"val5"}
{"field2":"val6"}
我想达致这通过替换,但停留在“‘字段1’:‘VAL1’ '字符串val1可以是任何值,如null,某个整数。
UPDATE emp SET col = REPLACE(col, '"field1":"val1"', '')
由于这个val1的动态值,我被卡住了。
你需要使用正则表达式来实现这一点。见[这篇文章](http://stackoverflow.com/questions/986826/how-to-do-a-regular-expression-replace-in-mysql)。但是,有些人似乎找到了解决方法。 – mikeyq6
如果您使用的是PHP,您可以迭代每一行,并使用下面的代码来获取该行没有字段1 $ str ='{“field1”:“val1”,“field2”:“val4”}'; $ array = json_decode($ str); foreach($ array as $ key => $ value){ if($ key ==“field1”)continue; else echo“$ key:$ value
”; } – Rajesh