基于具有json字符串的列搜索mysql记录

时间:2017-09-11 10:36:58

标签: php mysql json

我想使用具有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"}

这不起作用,因为该列是Text数据类型,并且提供的字符串不等于完整字符串。

有人可以帮忙吗?感谢

1 个答案:

答案 0 :(得分:0)

如果您不想重新组织数据库结构,也许应该尝试LIKE '%{$needle}%'和其他字符串函数?

据我所见,您可以将查询拆分为获得所需结果:

1)第一个查询将选择" opening_status":" open"针,

2)秒 - 与" Mon"针

3)比你应该找到这两个查询结果的intersection

仅当您只有一个"Mon"条目时,以下内容才有效,但我相信如果很少有" MySql,您会找到使用Mon字符串函数的解决方法"在你的JSON字符串中。