【问题标题】:How To check If mysql DB column has json array of object and contains specific string如何检查 mysql DB 列是否具有对象的 json 数组并包含特定字符串
【发布时间】:2020-04-14 13:25:40
【问题描述】:

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

[{"one":"mg 道路地块编号 711 xyz"},{"two":"dc 道路地块编号 711 xyz"}]

上面的json数据是为所有不同地址的记录存储的。所以我想做的是,我想搜索所有拥有mg road地址的客​​户。

所以我尝试了 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')

【问题讨论】:

    标签: mysql json database


    【解决方案1】:

    试试这个代码:

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

    【讨论】:

    • 我刚试过它返回 0 行并显示错误,如 ===Warning: #4038 参数 1 中 JSON 文本中的语法错误,函数 'json_extract' 在位置 31
    • 它仍然相同,有 0 行和相同的警告/错误
    • 错误应该不存在,这里是对该错误的引用stackoverflow.com/questions/35735454/…
    • 谢谢你的链接..但它仍然给出空结果,,
    猜你喜欢
    • 2018-03-12
    • 2010-11-16
    • 2013-01-12
    • 1970-01-01
    • 1970-01-01
    • 2023-03-09
    • 1970-01-01
    • 1970-01-01
    • 2020-07-27
    相关资源
    最近更新 更多