У меня есть некоторая проблема, чтобы найти запись с предложением where, параметры которого являются JSON
форматом. Например, столбец JSON
имеет значение, подобное этому ["1","2","3"]
. Когда я запускаю where JSON_CONTAINS(tags, '["1"]')
он выдает ошибку.
Я хочу спросить, как получить всю запись, которая имеет значение 1 в каждом столбце JSON
? Возможно, я мог бы использовать PHP
если нет способа сделать это с низкой версией mysql. Пожалуйста, кто-нибудь знает, что это может мне помочь. Спасибо вам раньше.
Это пример записи таблицы:
id | name | tags
---+---------+------------
1 | Jason | ["1","2"]
2 | Michael | ["4"]
3 | Sarah | ["1","3"]
4 | Lucy | ["2"]
Я хочу показать Джейсона и Сару, которые имеют значение 1 в колонке тегов.
Вы можете попробовать использовать LIKE
чтобы проверить, содержит ли поле результат;
SELECT * FROM jsondata WHERE tags LIKE '%"1"%'
Однако, как указано в этом другом ответе, вам, возможно, придется учитывать экранированные символы и кодировку при чтении JSON таким образом.