我想使用具有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数据类型,并且提供的字符串不等于完整字符串。
有人可以帮忙吗?感谢
答案 0 :(得分:0)
如果您不想重新组织数据库结构,也许应该尝试LIKE '%{$needle}%'
和其他字符串函数?
据我所见,您可以将查询拆分为获得所需结果:
1)第一个查询将选择" opening_status
":" open
"针,
2)秒 - 与" Mon
"针
3)比你应该找到这两个查询结果的intersection
。
仅当您只有一个"Mon"
条目时,以下内容才有效,但我相信如果很少有" MySql
,您会找到使用Mon
字符串函数的解决方法"在你的JSON
字符串中。