Я пытаюсь реализовать поиск, где вы можете ввести более одного критерия поиска для формирования И-условия. Также следует поискать в разных полях базы данных.
Так, например:
Вы, когда вы вводите "Билл Сиэтл" , вы должны получить запись, где ИМЯ соответствует Билл и СИТИ соответствует Сиэтл . Вы не должны получить строк, где только CITY соответствует Сиэтл .
Теперь, это не кажется сложным, но на самом деле это кажется сложнее, чем я думал. Я придумал что-то вроде этого:
SELECT * FROM ADDRESS WHERE
((NAME LIKE 'Bill%') OR (NAME LIKE 'Seattle%'))
AND
((CITY LIKE 'Bill%') OR (CITY LIKE 'Seattle%'))
Это хорошо работает в нашем предыдущем случае, но предположим, что мы добавили еще одно поле:
SELECT * FROM ADDRESS WHERE
((NAME LIKE 'Bill%') OR (NAME LIKE 'Seattle%'))
AND
((CITY LIKE 'Bill%') OR (CITY LIKE 'Seattle%'))
AND
((COMPANY LIKE 'Bill%') OR (COMPANY LIKE 'Seattle%'))
Теперь он не вернет желаемый результат.
Что мне действительно нужно (я полагаю), так это способ определить, является ли подусловие типа
((COMPANY LIKE 'Bill%') OR (COMPANY LIKE 'Seattle%'))
возвращает что-то, и если нет, мне нужно игнорировать это условие.
Кстати, я использую MSSQL '05.