2014-02-06 3 views
0

У меня есть столбец базы данных каккаскадная категория листинга на странице

id | item | category 
========================= 
1 | Pen | featured 
2 | Pencil | featured,new arrival 
3 | eraser | new arrival 

На моей странице листинга, я перечислить эти продукты в соответствии с их категорией, то есть, запрос ИНЕКЕ зависит от категории имен (признаки ,Новое поступление).

Пожалуйста, мне нужна помощь в том, как достичь этого.

+0

Вы пробовали «что-нибудь»? –

+0

Вы попробовали что-то вроде «LIKE% your_category%»? – marcosh

+2

Вы должны действительно реструктурировать свою базу данных и добавить две новые таблицы: 'Category (category_id, category_name)' и 'Category_Link (item_id, category_id)'. Затем вы должны будете сделать «JOIN» на данных. –

ответ

1

Функцию find_in_set(str, strlist) можно использовать.

Он возвращает значение в диапазоне от 1 до N, если строка str находится в списке строковых списков, состоящем из N подстрок.

select * from items 
where find_in_set('new arrival', category) > 0 

См:

+0

Спасибо за ваше решение. Он действительно работал отлично, как ожидалось. Я благодарен за это. Большое спасибо! Я быстро реализовал, поскольку я знал, что это функциональность, хотя я не дал ей попробовать. – OmniPotens

+0

@ OmniPotens: Также см.: [* Принятие ответов: как это работает? *] (Http://meta.stackexchange.com/a/5235/186186) –

+0

Я ждал времени, чтобы разрешить мне принять ваш ответ. Ответы не могут быть приняты сразу же задаются вопросы. Теперь есть срок, пока не будет принят ответ. :) – OmniPotens

0

Если таблица позволяет дублирующие элементы, вы можете изменить его, например,

id | item | category 
========================= 
1 | Pen | featured 
2 | Pencil | featured 
3 | Pencil | new arrival 
4 | eraser | new arrival 

, и вы можете запросить отдельный элемент. например

select distinct item from table where category in ('featured','new arrival'); 
+0

Пробовал ваше решение, но оно возвращало результаты не так, как я ожидал. Спасибо всем тем же. – OmniPotens

Смежные вопросы