У меня есть поле типа 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
Как найти конкретный объект данного идентификатора?
Вы должны предоставить JSON_EXTRACT(
пользователь, "$[0].uid")"
в SELECT
тоже.
Пытаться
SELECT *, JSON_EXTRACT(`user`, "$[0].uid") FROM users WHERE JSON_EXTRACT(`user`, "$[0].uid") = "213"
Других решений пока нет …