有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java MYSQL列中的空值要求为通配符

我有一个应用程序,其中会有几个关键列,但有些可能是空白的。例如,如果单元格为空,我不确定如何选择数据来匹配任何内容--

    Col1 | Col2 | Col3 | Col4
    ---------------------------
    red  | 100  | ABC  | RES1
    Blue |      | QWE  | RES2
         | 222  |      | RES3
    org  | 345  |      | RES4

现在我需要选择这样的行($xxx是一个变量,目前不是特定于语言的)-

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语句,这是可能的还是我必须重新考虑?谢谢


共 (2) 个答案

  1. # 1 楼答案

    在或中检查是否为空

    SELECT * 
    FROM tbl 
    WHERE (Col1=$var1 or col1 is null)  
    AND ( Col2=$var2 or col2 is null)
    AND ( Col3=$var3 or col3 is null)
    

    (不是特定语言)

  2. # 2 楼答案

    假设使用了准备好的语句(Java):

    SELECT Col4
        FROM tbl
        WHERE (Col1=? OR Col1 IS NULL)
            AND (Col2=? OR Col2 IS NULL)
            AND (Col3=? OR Col3 IS NULL);