我需要这样的查询
select * from t where
field=ifnull(:param, field) 'it not work's所以如果我有param=NULL
select * from t where field is NULL但是如果param =4,我有
select * from t where field=4发布于 2010-12-31 17:05:52
当where子句中的AFAIK bot对MySQl不确定时,可以使用case,
但更好的方法是翻译它们,
您可以阅读有关该SQL WHERE clauses: Avoid CASE, use Boolean logic的内容
所以
select * from t where (:param is null and filed is null) or (filed = :param)发布于 2010-12-31 17:20:18
你可以试试这个方法,这可能会对你有帮助。
select * from t where (field = NULL AND param= NULL) OR field ='4'发布于 2010-12-31 17:04:41
我认为你正在寻找NULLIF而不是ifnull。
我认为更好的方法是在where子句中使用case。
https://stackoverflow.com/questions/4569106
复制相似问题