Как получить количество определенных слов в определенной группе

Рейтинг: 1Ответов: 1Опубликовано: 02.04.2015

Есть колонка extra_fields в таблице cat_items. В этой колонке хранятся все характеристики материала. Но хранятся они в зашифрованном виде, например:

{"id":"1","value":"1"}

это означает "id":"1" = "Страна", а "value":"1" = "USA". В итоге имеем "Страна:USA". А еще есть категории, например:

{"id":"3","value":"1"}

где "id":"3" = "Категория", "value":"1" = "Экономика". Получаем на странице "Категория:Экономика".

Вот суть запроса: нужно вывести суммы категорий только страны USA. В итоге должны получить:

Экономика 12

Литература 36

Биология 65

и т.д.

Это все нужно для построения графиков. В SQL далеко не силен. Вот что придумал, но не додумал.

SELECT COUNT (extra_fields) AS extra_fields, '{"id":"1","value":"1"}' 
FROM cat_k2_items WHERE extra_fields LIKE '%{"id":"3","value":"1"}%'
UNION
SELECT COUNT (extra_fields) AS extra_fields, '{"id":"1","value":"1"}'
FROM cat_k2_items WHERE extra_fields LIKE '%{"id":"3","value":"2"}%'

В общем это не работает. Помогите советом, пожалуйста!

Ответы

Ответов пока нет.