我有应用程序,其中有几个关键列,但有些可能是空白的。如果单元格为空,我不确定如何选择数据以匹配任何内容,例如 -
Col1 | Col2 | Col3 | Col4
---------------------------
red | 100 | ABC | RES1
Blue | | QWE | RES2
| 222 | | RES3
org | 345 | | RES4
现在我需要选择这样的行($ xxx是var,目前不是语言特定的) -
SELECT * FROM tbl WHERE Col1=$var1 AND Col2=$var2 AND Col3=$var3
然后如果我设置var1 = yel,var2 = 222,var3 = KJH我需要结果为RES3
或者另一个例子,var1 = org,var2 = 345,var3 = BNM我需要结果为RES4
但如果我选择va1 = red,var2 = 333,var3 = ABC我需要0结果
基本上行中的空格需要是一个匹配任何东西的通配符,这需要很快,我只能使用一个Select语句,这是可能的还是我必须重新考虑事情?谢谢!
答案 0 :(得分:0)
在OR中检查是否为空
SELECT *
FROM tbl
WHERE (Col1=$var1 or col1 is null)
AND ( Col2=$var2 or col2 is null)
AND ( Col3=$var3 or col3 is null)
(不是特定语言)
答案 1 :(得分:0)
假设使用预备语句(使用Java):
SELECT Col4
FROM tbl
WHERE (Col1=? OR Col1 IS NULL)
AND (Col2=? OR Col2 IS NULL)
AND (Col3=? OR Col3 IS NULL);