Поиск по нескольким критериям, которые могут быть null

Модераторы: kdv, CyberMax

Ответить
dgs
Сообщения: 21
Зарегистрирован: 26 сен 2007, 18:50

Поиск по нескольким критериям, которые могут быть null

Сообщение dgs » 20 ноя 2007, 20:14

Есть главная таблица есть таблицы справочники.
Поисковый запрос выглядит так.
Вопрос как сделать так что бы если параметр равен нулу запрос работал по остальным критериям.
select main.*
from main, composer, author, title
where
composer.id=title.id_composer and composer.composername=:composername and
author.id=title.id_author and author.authorname=:authorname and
title.id=main.title_id and title.title = :title and
title.id=main.title_id and title.kgb_number = :kgb_number

Спасибо

kdv
Forum Admin
Сообщения: 6595
Зарегистрирован: 25 окт 2004, 18:07

Сообщение kdv » 20 ноя 2007, 22:34

не использовать null в столбцах
или
указывать доп условие в where - or field is null (что для оптимизатора не фонтан).

Dimitry Sibiryakov
Заслуженный разработчик
Сообщения: 1436
Зарегистрирован: 15 сен 2005, 09:05

Сообщение Dimitry Sibiryakov » 21 ноя 2007, 08:20

Но правильнее будет изменять запрос, убирая из него условия по которым фильтровать не нужно.

Ответить