@Serjio-Grig
Тот самый никто (=

Как сделать поиск по группе параметров?

Здравствуйте. Возник следующий вопрос.
Есть 3 таблицы - content, params и content_params.
content - таблица для объявлений
params - таблица с параметрами для различных категорий (например, грузоподъемность и пр.)
content_params - таблица со значениями параметров для объявлений (например, для объявления 1 параметр 2 имеет значение 100).

Как реализовать поиск по параметрам?
Т.е. сейчас форма поиска выводит параметры со значениями от/до (поиск в диапизоне).
Но при отметке "Эвакуатор с ломаной платформой"с ценой от 100 до 500 рублей за километр не обязательно выведет именно эвакуаторы с ломаной платформой и заданным ценовым диапазоном - выведет так же и любые другие эвакуаторы, которые просто попадают под ценовой диапазон и располагаются в определенном квадрате географических координат.

Как сформулировать запрос, чтобы выводило объявления только с параметром цены > 100 и < 500 рублей И только с той же ломаной платформой?
  • Вопрос задан
  • 105 просмотров
Пригласить эксперта
Ответы на вопрос 1
SELECT *идентификатор_объявления* FROM `content_params` WHERE *идентификатор_объявления* = (SELECT id FROM `content` WHERE *имя_поля_где_указано_название_объявления* LIKE "%Эвакуатор с ломаной платформой%") AND *параметр_цены* > 100 OR *параметр_цены* < 500


Так вы получаете идентификаторы объявлений, названия которых похожи на "Эвакуатор с ломаной платформой" и при этом параметр цены в диапазоне от 100 до 500 рублей за километр. В теории работает, но я не тестировал. Можно еще поделить запрос на два, в первом получать идентификаторы объявлений, названия которых похожи на "Эвакуатор с ломаной платформой", а потом в цикле делать выборку по каждому идентификатору и по цене.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы