2013-12-16 71 views
0

我知道在SQL語句的WHERE子句中使用column = NULL會導致一個空的結果集。由於這在編程環境中效率很低,我正在尋找一種方法讓MySQL解釋column = NULL,比如column IS NULL,可能是通過設置SQL模式?是否有MySQL允許「WHERE x = NULL」(意思是「WHERE x IS NULL」)的SQL模式?

+1

「低效」但**正確**。 – gvee

+0

您可以改用['<=>'](http://dev.mysql.com/doc/refman/5.7/en/comparison-operators.html#operator_equal-to)。我不會。這不是便攜式的。 –

+0

不清楚你在問什麼 –

回答

0

嗯,至少PostgreSQL裏面當設置爲擁有該

transform_null_equals = true 

參數,查詢分析器將改變

field = NULL 

field is NULL 

預先。有些東西告訴我有一個等價的參數隱藏在MySQL較少記錄的參數中。

0

您可以改爲使用<=>。我不會。這不是便攜式的。

(感謝馬丁·史密斯誰pointed me to這這是一個解決我的問題)

0

你可以在你的case語句的WHERE子句中使用正確的語法:

http://www.postgresql.org/docs/9.4/static/functions-conditional.html

SELECT * FROM my_items WHERE 
    CASE WHEN 1=1 THEN mac = '08:00:2b:01:02:03' 
     WHEN 1=2 THEN mac IS NULL 
    END; 

顯然,在這個例子中總是會調用第一個case(WHEN 1 = 1)。你可以把你自己的邏輯滿足你的條件。

相關問題