Hai*_*vgi 10 mysql null where-clause
如何在 CLAUSE 中的mysql 中处理NULL值
我尝试了
SELECT * FROM mytable WHERE field IN(1,2,3,NULL)
Run Code Online (Sandbox Code Playgroud)
它不起作用
只有像:
SELECT * FROM mytable WHERE field IN(1,2,3) OR field IS NULL
Run Code Online (Sandbox Code Playgroud)
我怎样才能让它发挥作用WHERE IN?有可能的 ?
根据我的理解,你想用1,2,3和null值拉每条记录.
我认为不可能在IN运算符中放置null.它期望值和null很好..不是值.所以你真的必须使用null和OR来获得所需的结果.
有一个名为COALESCE. 它返回NULL列表中的第一个非值,或者NULL如果没有非NULL值。
例如,如果您运行,SELECT COALESCE(NULL, NULL, -1);您将-1返回,因为它是第一个非NULL值。
所以这里的技巧是将你的表达式包装在 中COALESCE,并添加一个值作为最后一个参数,你也添加到你的IN函数中。
SELECT * FROM mytable WHERE COALESCE(field,-1) IN (1,2,3,-1)
Run Code Online (Sandbox Code Playgroud)
仅当 field 为 1,2 或 3 或 field 为 时才匹配NULL。