2
A
回答
5
where(state: nil)
的計算結果爲WHERE events.state IS NULL
,另一個計算結果爲SQL中的WHERE (state = NULL)
。
現在,A NULL
相比,任何事情都會返回NULL
,除非您使用IS
運算符。所以,如果你想檢查它是否爲NULL
,則使用state IS NULL
,如果不是NULL
,則使用。
state = NULL
,返回NULL
,其中,在WHERE
條款,相當於FALSE
,這就是爲什麼你得到記錄。
events.state IS NULL
是正確的空比較,所以你得到了你在DB中的輸出。
1
它們生成不同的sql。當你有這樣的問題時,你可以添加一個.to_sql到你的關係,它會顯示你生成併發送到數據庫的sql。
Event.where(狀態:無)產生此,如果x是像值空
... WHERE events.state IS NULL
Event.where( '狀態=?',零)產生此,檢查是否X其中它檢查等於null這將永遠不會是真的
... WHERE (state = NULL)
相關問題
- 1. 這些陳述有什麼區別嗎?
- 2. 這些陳述之間有什麼區別
- 3. 這些陳述之間有什麼區別?
- 4. 這些陳述之間的區別是什麼
- 5. 這兩個陳述之間有什麼區別?
- 6. 這兩個陳述有什麼區別?
- 7. 這兩個陳述有什麼區別?
- 8. 這兩個陳述有什麼區別?
- 9. 這兩個陳述有什麼區別嗎?
- 10. 這兩個比較陳述有什麼區別?
- 11. 這兩個委託陳述有什麼區別?
- 12. 這兩個陳述之間的區別是什麼(實體框架)
- 13. c中的條件陳述和控制陳述之間是否有區別?
- 14. 這兩個陳述之間的區別? - C++
- 15. 這些有什麼區別?
- 16. 這些有什麼區別?
- 17. 這兩行之間有什麼區別?
- 18. 這兩個....之間有什麼區別?
- 19. 這和之間有什麼區別:and:this?
- 20. 描述和描述之間有什麼區別?
- 21. 這些構建器模式之間有什麼區別?
- 22. 這些「打開」格式之間有什麼區別
- 23. 這些(bCondition == NULL)和(NULL == bCondition)之間有什麼區別?
- 24. 這些片段之間有什麼區別?
- 25. 這些Scripts.Render語句之間的編譯器有什麼區別?
- 26. 這些nasm堆棧推動之間有什麼區別?
- 27. Cocoa-Touch。這些NSMutableData方法之間究竟有什麼區別?
- 28. 這些術語之間有什麼區別:「協會」和「關係」?
- 29. 這些評論之間有什麼區別
- 30. 這些IBM.Data.DB2 dll之間有什麼區別?
你可以提供每個人的sql輸出嗎? '.to_sql' – xlembouras
好吧,我現在看到。首先給出'state IS NULL',第二個'state = NULL'。 –
第一個等價查詢將是'Event.where('state IS NULL')'。 'Event.where('state =?',nil)'與'Event.where(state:nil)'不一樣' – Pavan