mysql - 来自json数组的MySQL条件过滤器元素
问题描述
在 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 长度(替换(json_extract(phone_contacts,'$[*].number'),'',''))> = 10
解决方案
尝试选择您where
作为自己的列并检查输出。如果有效,您可以参考。
所以
Select length(replace(json_extract(phone_c ntacts,'$[*].number' ) , ' ', '') ) as my_length
然后在having
查询末尾引用
Having my_length>=10
推荐阅读
- git - cPanel 中的 GIT 存储库连接失败
- javascript - 理解 javascript 中的 XHR 请求对象...(困惑)
- javascript - 如何在循环中创建正则表达式?
- php - 如何在 Symfony 3.4 中将 json 反序列化为具有关系的实体?
- apache-flink - Apache Flink:每台机器的 TaskManager 数量
- vb.net - 嵌套水晶报表出错**子报表不支持**
- spring-boot - 如何在spring boot中正确实现apache shiro的ehcache并与ehcache一起使用spring?
- javascript - 使多个元素在放置时可见
- python - 使用 python 在 Windows 上跟踪结束任务应用程序的事件
- mysql - 将所有从 table1 插入到 table2 具有不同的表结构