Mysql: select * from table where col IN (null, “”) possible without OR

后端 未结 1 1671
时光说笑
时光说笑 2021-01-01 10:16

is its somehow possible to do a select for empty strings and NULL values in Mysql without using or?

this:

   select * from table where col IN (null,          


        
相关标签:
1条回答
  • 2021-01-01 10:57
    SELECT  *
    FROM    mytable
    WHERE   COALESCE(col, '') = ''
    

    Note, however, than OR query will be much more efficient if the column is indexed:

    SELECT  *
    FROM    mytable
    WHERE   col = '' OR col IS NULL
    

    This will use ref_or_null access path on the index.

    If you need to select from a list of values along with NULLs, just put all not-null values into the list and add a single OR IS NULL condition:

    SELECT  *
    FROM    mytable
    WHERE   col IN ('val1', 'val2', 'val3') OR col IS NULL
    

    This will use an index on col as well.

    0 讨论(0)
提交回复
热议问题