поиск записей MySQL на основе столбца, который имеет строку JSON

Я хотел запросить записи из таблицы MySQL, используя столбец, который имеет строку JSON. Так как я работаю над старым проектом, используется версия 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

Решение

Может тебе стоит попробовать LIKE '%{$needle}%' и другие строковые функции в случае, если вы не хотите реорганизовать структуру вашей базы данных?

Насколько я мог видеть из вашего примера, вы могли бы разделить ваш запрос, чтобы получить необходимый результат:

1) первый запрос выберет записи с «opening_status«:»open«игла,

2) второе — с «Monигла

3) чем вы должны найти intersection из этих двух запросов результатов.

Следующее будет работать, только если у вас есть только одна запись "Mon", но я верю, что вы найдете обходной путь, используя MySql строковые функции в том случае, если их малоMonв вашем JSON строка.

0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector