我正在寫一個採用單個日期時間參數的mysql存儲過程。它使用它在一個select語句這樣..MySQL可能的空值過濾
select *
from table
where date >= @datefrom or @datefrom is null
當我寫T-SQL查詢,這通常是卓有成效的,但它似乎是使用MySQL。
我也有嘗試過其他變體,如
where date >= ifnull(@datefrom, date)
也
where ((date >= @datefrom and @datefrom is not null) or (@datefrom is null))
但林沒有得到結果,我期待..
有人可以闡明這個任何光?
過程定義爲這樣..
CREATE DEFINER=`root`@`%` PROCEDURE `prc_xxxxxx`(datefrom datetime)
BEGIN
select * from table
where date >= @datefrom or @datefrom is null
END
,然後我將調用這樣的..
call prc_xxxxxx ('2012-07-04 00:00:00')
或
call prc_xxxxx (null)
您是否正在運行此查詢?與查詢中的@ – Dojo
是 - 與@ – Grant
嘗試使用'NULL'安全的相等運算符['<=>'](http://dev.mysql.com/doc/en/comparison-operators.html#operator_equal-to)。 – eggyal