我在这里遇到了一些问题,我实际上已经有一段时间遇到了同样的问题,但我最后还是让它工作到底,但是我想知道我是否错过了一个简单的方法。
说我是否有:
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运算符时查找null或其他字符串。
我知道这可能看起来很糟糕,但很难在某些时候得到一点。
答案 0 :(得分:3)
SELECT * FROM tbl_table WHERE (field1 IS NULL OR field1 LIKE ?) AND (field2 IS NULL OR field2 LIKE ?) AND ....
答案 1 :(得分:0)
基本上,您需要检查where子句中变量的值。检查它是否为null或具有这样的值。
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)