«ГДЕ столбец НЕ НУЛЬ» с помощью Kohana v3 Query Builder - PullRequest
14 голосов
/ 26 сентября 2010

Возможно ли с Kohana v3 Query Builder использовать оператор IS NOT NULL?

Метод where ($ column, $ op, $ value) требует все три параметра и дажеесли я укажу

->where('col', 'IS NOT NULL', '')

, он создаст и неверный запрос, например.

SELECT * FROM table WHERE col IS NOT NULL '';

Ответы [ 5 ]

24 голосов
/ 23 января 2011

Оператор не экранирован:

->where('col', 'IS NOT', NULL)

Нет необходимости использовать DB :: expr, Kohana уже поддерживает то, что вы хотите.

9 голосов
/ 26 сентября 2010

Это работает с модулем ORM и немного меньше печатает.

->where('col', '!=', NULL);
3 голосов
/ 26 сентября 2010

Не уверен (сейчас 3 часа ночи), но ->where('col', '', DB::expr('IS NOT NULL')) может работать.

0 голосов
/ 03 октября 2014

Предложение WHERE принимает 3 аргумента, 1-й и 3-й, которые всегда пытаются преобразовать в формат backticks (т. Е. `Table``field`).Пока вы предоставляете DB :: Expr хотя бы по 3-му аргументу, вы можете не оставлять ничего в 1-м и 2-м аргументах, а также должно работать следующее:

->where('', '', DB::Expr('!isNull(col)'));

Это подтверждаетсяработа на Kohana 3.2 и выше.

0 голосов
/ 27 сентября 2010

Это должно работать:

->where('col', '=', NULL);
...