JSON_CONTAINS не поддерживается в версии MySQL 5.1.73

0

У меня есть некоторая проблема, чтобы найти запись с предложением 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 в колонке тегов.

  • 0
    Я очень подозреваю, что MySQL 5.1 имеет какую-либо поддержку JSON
  • 0
    @ Johnny000 Я пытался в 5.1 и 5.0 функция не поддерживается.
Показать ещё 3 комментария
Теги:

1 ответ

1
Лучший ответ

Вы можете попробовать использовать LIKE чтобы проверить, содержит ли поле результат;

SELECT * FROM jsondata WHERE tags LIKE '%"1"%'

Однако, как указано в этом другом ответе, вам, возможно, придется учитывать экранированные символы и кодировку при чтении JSON таким образом.

  • 0
    Как, если значение содержит ["1", "51"], оно найдет только 1 или тоже найдет 51?
  • 2
    Нет, он найдет только 1, потому что у вас есть кавычки вокруг 1.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню