2013-07-16 40 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