|
|
|
| Доброго времени.
Есть таблица, хранящая список дополнительных параметров статьи. Каждая строка таблицы содержет имя параметра, значение и идентификатор статьи-владельца.
имя | значение | id
--------------------------------
Размер | 10 | 1
Размер | 8 | 2
Размер | 7 | 3
Дата | 10.9.2010| 1
Дата | 11.9.2010| 2
Дата | 11.9.2010| 3
Есть список параметров фильтрации. Например ('Размер' => (10, 8), "Дата" => (11.9.2010)).
Как составить запрос таким образом, чтобы он проверял соответствие значений строкам с определённым именем? Т.е. SELECT * FROM ... WHERE строка с именем "Размер" IN (10, 8) AND строка с именем "Дата" IN (11.9.2010)?
Заранее спасибо. | |
|
|
|
|
|
|
|
для: PanCotzky
(02.03.2011 в 23:03)
| | Хм... вручную запрос составить не сложно
SELECT * FROM tbl
WHERE id = 1 AND (
(name = "Размер" AND value BETWEEN 8 AND 10) OR
(name = "Дата" AND value = "11.9.2010")
)
|
| |
|
|
|
|
|
|
|
для: cheops
(02.03.2011 в 23:15)
| | Спасибо, помогло. Не подскажите статей о том, как устроена проверка условий изнатри? Чтобы лучше понять логику. | |
|
|
|
|
|
|
|
для: PanCotzky
(03.03.2011 в 18:18)
| | Статей наверное нет, что-то не приходит на ум ничего подходящего, но вы можете спрашивать все, что вызывает затруднение, что знаем - расскажем. | |
|
|
|