Общие > Базы данных
Сложный select
(1/1)
NР:
Всем привет!
Делаю поиск по базе на PHP и Mysql.
Поиск с несколькими условиями, но некоторые условия (судя по результатам) база упускает. В этом запросе результаты не учитывают условие (id_cat = \'241\') or (id_cat = \'240\') or (id_cat = \'242\') or (id_cat = \'243\')
--- Код: ---$query = "SELECT id, notice, price, name, descr_, picture, path, author, publishing FROM `picture` where visible 1 and (id_cat = \'241\') or (id_cat = \'240\') or (id_cat = \'242\') or (id_cat = \'243\') and (name regexp \'$key_word\') or
(author regexp \'$key_word\') or (format regexp \'$key_word\') or
(descr regexp \'$key_word\') ORDER BY name LIMIT $first, 15";
--- Конец кода ---
Я не очень хорошо знаю синтаксис SQL, покопался в инете по таким запросам, но ничего н нашел.
Поэтому спрашиваю у вас, как правильно написать этот запрос:
Выбрать id, notice, price, name, descr_, picture, path, author, publishing из таблицы picture, где visible не равно ноль и (id_cat = 241 или id_cat = 240 или id_cat = 242 или id_cat = 243) и (name regexp \'$key_word\') or
(author regexp \'$key_word\') or (format regexp \'$key_word\') or
(descr regexp \'$key_word\')
Спасибо!
MadDog:
--- Цитировать ---NР:
(id_cat = \'241\') or (id_cat = \'240\') or (id_cat = \'242\') or (id_cat = \'243\')
--- Конец цитаты ---
Попробуй написать так:
((id_cat = \'241\') or (id_cat = \'240\') or (id_cat = \'242\') or (id_cat = \'243\'))
--- Цитировать ---NР:
(name regexp \'$key_word\') or (author regexp \'$key_word\') or (format regexp \'$key_word\') or (descr regexp \'$key_word\')
--- Конец цитаты ---
ну и это соответсвенно тоже также
((name regexp \'$key_word\') or (author regexp \'$key_word\') or (format regexp \'$key_word\') or (descr regexp \'$key_word\'))
Макс:
--- Цитировать ---MadDog:
((id_cat = \'241\') or (id_cat = \'240\') or (id_cat = \'242\') or (id_cat = \'243\'))
--- Конец цитаты ---
id_cat IN (241, 240, 242, 243)
или
id_cat BETWEEN 240 AND 243
NР:
MadDog
Помогло, спасибо!
Навигация
Перейти к полной версии