我想使用具有 json 字符串的列来查询 mysql 表中的记录。由于我正在工作一个旧项目,使用的 Mysql 版本是 5.0,因此,我无法使用 mysql 5.7 json 函数,例如JSON_CONTAINS 等等等
select * cpd_company where operation_data = '{"opening_status":"open", "days": ["Mon"]}';
operation_data 列包含这样的 json 字符串:
{"days":["Mon","Fri"],"open_hour":"12:00 AM","close_hour":"12:30 PM","operating_type":"daily","opening_status":"open","journey_type":"Departure"}
这不起作用,因为该列是文本数据类型,并且提供的字符串不等于完整字符串。
有人可以帮忙吗?谢谢
最佳答案
如果您不想重新组织数据库结构,也许您应该尝试 LIKE '%{$needle}%'
和其他字符串函数?
据我从您的示例中看到,您可以拆分查询以获得所需的结果:
1) 第一个查询将选择带有 "opening_status
":"open
"针的条目,
2) 第二个 - 带“Mon
”针
3) 您应该找到这两个查询结果的交集
。
仅当您只有一个 "Mon"
条目时,以下内容才有效,但我相信您会在很少有 "的情况下使用 MySql
字符串函数找到解决方法JSON
字符串中的 Mon
”。
关于php - 根据具有 json 字符串的列搜索 mysql 记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46153637/