Mysql Json — извлечение перикулярного объекта из массива json на основе заданного идентификатора

У меня есть поле типа json с именем ‘user’ в таблице ‘users’, содержащее следующие данные

[{"uid":"213", "name":"Tim", "email":"[email protected]"}, {"uid":"214", "name":"Cook", "email":"[email protected]"}, {"uid":"215", "name":"Peter", "email":"[email protected]"}, {"uid":"216", "name":"Jhon", "email":"[email protected]"}]

Я хочу получить объект пользователя данного uid
использовал этот запрос

SELECT * FROM users WHERE json_extract(`user`, "$[0].uid") = "213"

но он возвращает весь массив в поле пользователя
результат, который я хочу, — {"uid":"213", "name":"Tim", "email":"[email protected]"}

попробовал это также

SELECT * FROM users WHERE json_extract(`user`, "$[*].uid") = "213"`

но возвращается NULL

Как найти конкретный объект данного идентификатора?

0

Решение

Вы должны предоставить JSON_EXTRACT(пользователь, "$[0].uid")" в SELECT тоже.

Пытаться

SELECT *, JSON_EXTRACT(`user`, "$[0].uid") FROM users WHERE JSON_EXTRACT(`user`, "$[0].uid") = "213"

Referance

0

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

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

По вопросам рекламы [email protected]