2013-10-13 2 views
0

У меня небольшая проблема с MySQL. Вот моя ситуация:JSON разбор в MySQL при выборе

У меня есть таблица с именем items с столбцом с именем fields, который содержит данные JSON. Вот как выглядит значение:

example row1: [{"id":"1","value":"1"},{"id":"2","value":"2"},{"id":"3","value":"1"}] 
example row2: [{"id":"1","value":"1"},{"id":"2","value":"7"},{"id":"3","value":"1"}] 

Мой запрос должен быть чем-то вроде этого:

SELECT * FROM `items` WHERE `fields` has {"id":"2","value":"2"} 

И это:

SELECT COUNT(*) FROM `items` WHERE `fields` has {"id":"2","value":"2"} 

Но я не знаю, как это сделать. Самая большая проблема заключается в том, что это должно быть быстрым, потому что количество строк велико. Было бы здорово, если бы вы могли помочь мне здесь или дать мне ссылку на информацию, я попытался выполнить поиск, но все, что я нашел методы common_schema, но люди говорят, что они медленны. Заранее спасибо!

+0

очень очень плохо структура таблицы. –

+0

@echo_Me Я знаю, но я этого не делал. И теперь я тот, кто имеет дело с этим. –

ответ

0

Я думаю, что это относительно близко решение:

SELECT COUNT(*) FROM `items` WHERE `fields` like '%"id":"2","value":"2"%' 

(Это белое пространство чувствительно ...)

+0

Ну, я думаю, это единственный выбор. Благодаря! –