mysql - 如何检查 mysql DB 列是否具有对象的 json 数组并包含特定字符串

标签 mysql json database

我已将 json 数据保存在 mysql 数据库列中,如下所示

[{"one":"mg road plot number 711 xyz"},{"two":"dc road plot number 711 xyz"}]

像上面这样的json数据正在为具有不同地址的所有记录存储。所以我想做的是,我想搜索所有拥有 mg 路地址的客户。

所以我尝试了 JSON_SEARCHJSON_CONTAINS 但它总是返回给我没有找到任何记录,即使表中有 2 条记录。那么我哪里出错了。

SELECT * FROM `tbl_clients_data` WHERE JSON_SEARCH(reci_address,'all', "mg road")


SELECT * FROM `tbl_clients_data` WHERE JSON_CONTAINS(reci_address, 'mg road', '$.one')

最佳答案

试试这个代码:

SELECT * FROM `tbl_clients_data` WHERE JSON_EXTRACT(reci_address, '$[*].one') 
LIKE 'mg road%' OR JSON_EXTRACT(reci_address, '$[*].two') LIKE 'mg road%'

JSON_EXTRACT 从 JSON 文档中提取数据。提取的数据是从与路径参数匹配的部分中选择的。返回所有匹配的值;作为单个匹配值,或者,如果参数可以返回多个值,则结果按匹配顺序自动包装为数组。

关于mysql - 如何检查 mysql DB 列是否具有对象的 json 数组并包含特定字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59452222/

相关文章:

c# - Entity Framework 6 : Master-Detail view shows single HashSet instead of filtered detail items

php - 在 PHP 中使用复选框删除 MySQL 记录

mysql - 相同用户和相同状态的连续实例 - MYSQL

database - 最大连接池是否也限制了与数据库的最大连接数?

javascript - 如何将 Google Maps V3 距离结果保存到 MySQL 数据库?

php - Woocommerce:用户只能购买一次产品

json - 如何让 Vue 显示来自 json 文件的本地路径的图像

javascript - 如何提交包含相关字段列表的表单?

asp.net-mvc - 如何为 MVC 创建 ValueProvider

database - Spring Boot postgresql内嵌tomcat启动失败