Всем привет, есть база занных, в которых одно из полей является JSON данными в формате:
[tags] => Array
(
[0] => Array
(
[id] => 289237
[name] => vk
[element_type] => 2
)
[1] => Array
(
[id] => 315875
[name] => leadform
[element_type] => 2
)
[2] => Array
(
[id] => 343622
[name] => Ростов
[element_type] => 2
)
)
Я пытаюсь вытащить все записи по определенному запросу mySQL
SELECT *
FROM data_table
WHERE date_create>='2017-08-01'
AND JSON_EXTRACT(tags, "$**.name") = "vk"
т.е. все записи, где есть тег со значением name = vk
Но увы я недостаточно знаю язык запросов. Может кто поможет составить верный запрос
Попробуйте
SELECT *
FROM data_table
WHERE date_create>='2017-08-01'
AND JSON_SEARCH(tags, 'one', 'vk') IS NOT NULL
JSON_SEARCH находет путь к элементу или возвращает NULL если не находит. Доки: https://dev.mysql.com/doc/refman/5.7/en/json-search-functions.html#function_json-search
Другой вариант:
AND JSON_CONTAINS(tags, '{"name": "vk"}')
Как развивать веб-проекты в 2026 году: технологии, контент E-E-A-T и факторы доверия
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники