Проблема SQL с многопольным поиском

0

У меня есть некоторые проблемы здесь, у меня на самом деле была одна и та же проблема на некоторое время, но я взламываю и заставляю ее работать в конце, но я хотел бы знать, пропустил ли я простой способ сделать это.

Скажите, есть ли у меня:

Field input 1 
Field input 2
Field input 3 (empty)
Field input 4

I want to query SELECT * FROM tbl_table WHERE field1 LIKE ? AND field2 LIKE  ? AND field3 LIKE  ? AND field4 LIKE  ? 

В основном я вхожу в проблему, когда вход пуст, потому что он ищет в поле и ищет нуль или другую строку, когда я хочу, чтобы он просто отменил оператор LIKE пустого ввода.

Я знаю, что это может показаться очень плохим, но его трудно понять.

Теги:

2 ответа

3
SELECT * FROM tbl_table WHERE (field1 IS NULL OR field1 LIKE ?) AND (field2 IS NULL OR field2 LIKE ?) AND ....
  • 0
    Аааа я вижу большое спасибо чувак :)
0

По существу, вам нужно проверить значение переменной в предложении where. Проверьте, является ли оно нулевым или имеет значение, подобное этому.

Declare @input1 varchar(50);
Declare @input2 varchar(50);
Declare @input3 varchar(50); 
Declare @input4 varchar(50);

SET @input1 = 'a'
SET @input2 = 'b'
SET @input3 = NULL
SET @input4 = 'c'

SELECT 
  * 
FROM tbl_table 
WHERE 
  (@input1 is null OR field1 LIKE @input1) 
  AND (@input2 is null OR field1 LIKE @input2) 
  AND (@input3 is null OR field1 LIKE @input3) 
  AND (@input4 is null OR field1 LIKE @input4)  

Ещё вопросы

Сообщество Overcoder
Наверх
Меню