Выборка нужных json данных в ячейке по заданному ключу Mysql
есть таблица history в которой данные хранятся в json строке. База данных mysql Структура таблицы: id - user_id - add_date - kind - data Пример данных хранящихся в ячейке data в формате ключ значение:
{"item_title":"title","item_id":"id","item_amount":"amount","user_id":"id"}
пример записи с одним ключом:
{"ip":"000000000"}
Выборку этой строки сделать получается
$history = database::i()->history('data', '{"ip":"'.$this->request['ip'].'"}')
А вот с первым примером проблема, так как его нужно доставать по ключу item_id При попытке осуществить выборку как с вариантом выборки ip ни к чему не произведет так как ищется полное совпадение данных.
Вопрос в том, как можно пропустить определенный кусок данных в ячейке в начале и в конце, что бы можно было искать лишь по одному ключу. Благодарю!
Ответы (1 шт):
Решил задачу с помощью оператора LIKE Пример решения по моему вопросу:
$history = database::i()->history('user_id = ?', $user_id)->where('data LIKE ?', '{"item_title":"%",%'.$id.'%');
для большей точности, еще включил заголовок который одинаков в этой записи.