"WHERE column NOT NULL" с Kohana v3 Query Builder

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

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

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

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

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

Ответы

Ответ 1

Оператор не экранируется:

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

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

Ответ 2

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

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

Ответ 3

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

Ответ 4

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

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

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

Ответ 5

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

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