Mysql SQL:总是从'IN'条件返回true
如何使条件下的Mysql SQL:总是从'IN'条件返回true,mysql,sql,Mysql,Sql,如何使条件下的始终返回true,就像其中的1,我尝试了null,但没有成功: WHERE X IN (NULL) 是否有办法使中的始终返回true并接受所有行 从以下内容返回true: where X in ("Any value here to alway return true") 最好是包含要比较的列: where x in (x) 但是,这不包括NULL值。事实上,您无法实现此返回: where NULL in ( . . . ) 您可以将其修改为: where coalesce
始终返回true,就像其中的1
,我尝试了null,但没有成功:
WHERE X IN (NULL)
是否有办法使
中的始终返回true并接受所有行
从以下内容返回true:
where X in ("Any value here to alway return true")
最好是包含要比较的列:
where x in (x)
但是,这不包括NULL
值。事实上,您无法实现此返回:
where NULL in ( . . . )
您可以将其修改为:
where coalesce(x, '') in (coalesce(x, '')
一种方法是使用左连接
:
select t.*
from table t left join
( . . . ) tt
on tt.x = t.x;
很抱歉,我忘了在我的问题中添加一列。这样的问题无法返回true:其中x在(这里的某个东西)
@mwafi。如果x
为NULL
,表达式将始终返回NULL
(我可以警告,某些数据库可能具有与标准不同的设置来处理NULL
)。但是对于非NULL
值,您可以在列表中包含x
。我不想在列x中匹配NULL,我需要条件始终返回true@mwafi . . . 也许您只是在where
子句中添加或1=1
。空值需要一些额外的处理。我会做其中x为null或x in(..)
@jarlh我不与null比较我需要始终返回true而不关心列值我必须使用中的是否有任何方法始终从以下内容返回true:其中x in(“此处的任何值始终返回true”)