2013-07-16 5 views
7

Может кто-нибудь, пожалуйста, скажите мне, как сравнить столбец таблицы с NULL с помощью снятого вложения slick.Столбец столбца сравнения с нулевым номером

Что я хочу достичь в 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

Try:

x.removed.isNull 

Я думаю, что это то, что вы ищете

+0

Отлично, что сработало :) – Sameerel

+9

'isNull' и' isNotNull' устарели и заменены 'isEmpty' и' isDefined'. Источник: [slick documentation] (http://slick.typesafe.com/doc/2.1.0-RC2/upgrade.html) –

3

Попробуйте

x.removed.isEmpty() 

У нас нет ни одного отклонения ;-) Scala

+0

Спасибо .. но я попробовал это и сейчас получаю: Значение isEmpty не является членом scala.slick.lifted.Column [Option [Int]] – Sameerel

+0

.isNull - правильный ответ - в нем могут быть не равны scala, но, безусловно, есть в SQL! Должен признаться, я тоже хотел использовать обычные опции []. Было бы здорово, если бы Slick добавил .isEmpty/.isDefined, чтобы сделать его более похожим на Scala. – markltbaker

+1

В Scala, конечно, допускаются нули. Они почти всегда плохая идея и почти никогда не использовались. – nafg

Смежные вопросы