在MySQL中有一个json数组类型的列,并尝试有条件地从数组中过滤出一些元素。示例如下:
原始json数组
{"name":"Atencion a Clientes","number":"*111"},{"name":"Atn Ciudadana","number":"066"},{"name":"Atn Ctes Intl","number":"+525525813300"},{"name":"Bomberos","number":"116"},{"name":"Chelo","number":"993-120-2100"} }
期望的输出如下所示:
所需的输出json数组
{"name":"Atn Ctes Intl","number":"+525525813300"},{"name":"Chelo","number":"993-120-2100"}
我们只想保留电话号码长度为>= 10的元素。尝试使用以下代码,但不起作用。这可以通过MySQL函数来实现吗?非常感谢。
替换WHERE length(
(json_extract(phone_contacts,'$*.number‘),’','') ) >= 10
发布于 2018-07-17 10:31:43
尝试选择where
作为它自己的列,并检查输出。如果它工作正常,你就可以引用它了。
所以
Select length(replace(json_extract(phone_c ntacts,'$[*].number' ) , ' ', '') ) as my_length
然后在查询的末尾引用having
Having my_length>=10
https://stackoverflow.com/questions/51371178
复制相似问题