2013-07-16 73 views
7

有人可以告訴我,我們如何比較一個表列與NULL使用浮動的提升嵌入。光滑的比較表列與空

我想在mysql中實現什麼:

select * from Users where email = '<some_email_addr>' and (removed = NULL OR removed <= 1) 

它給我的錯誤在x.removed ===空當我嘗試:

val q = for { 
    x <- Users 
     if x.email === email && (x.removed === null || x.removed <= 1) 
} yield x.removed 

感謝

回答

16

嘗試:

x.removed.isNull 

我認爲這是你在找什麼

+0

偉大的工作:) – Sameerel

+9

'isNull'和'isNotNull'已被棄用,並由'isEmpty'和'isDefined'取代。來源:[光滑文檔](http://slick.typesafe.com/doc/2.1.0-RC2/upgrade.html) –

3

嘗試

x.removed.isEmpty() 

有沒有在斯卡拉;-)空

+0

謝謝......但我試過,現在得到: value isEmpty不是scala.slick.lifted.Column的成員[Option [Int]] – Sameerel

+0

.isNull是正確的答案 - 可能沒有空值斯卡拉,但肯定有SQL!但我必須承認,我也想使用普通的Option []方法。如果Slick添加.isEmpty/.isDefined以使其更加類似Scala,那將會很棒。 – markltbaker

+1

斯卡拉當然有允許使用空值。他們幾乎總是一個壞主意,幾乎從未使用過。 – nafg