使用Kohana v3 查询生成器是否可以使用IS NOT NULL运算符?
where($ column,$ op,$ value)方法需要所有三个参数,即使我指定了
->where('col', 'IS NOT NULL', '')
它构建和无效的查询,例如。
SELECT * FROM table WHERE col IS NOT NULL '';
答案 0 :(得分:24)
操作员未被转义:
->where('col', 'IS NOT', NULL)
不需要使用DB :: expr,Kohana已经支持你想要的东西。
答案 1 :(得分:9)
这适用于ORM模块,输入的次数少一些。
->where('col', '!=', NULL);
答案 2 :(得分:3)
不确定(现在是凌晨3点),但->where('col', '', DB::expr('IS NOT NULL'))
可能会有效。
答案 3 :(得分:0)
WHERE子句有3个参数,第1个和第3个参数总是试图转换为反引号格式(即`table``field`)。只要您至少在第三个参数上提供DB :: Expr,就可以在第一个和第二个参数中保留任何内容,并且以下内容也可以正常工作:
->where('', '', DB::Expr('!isNull(col)'));
这证实适用于Kohana 3.2及以上版本。
答案 4 :(得分:-1)
这应该有效:
->where('col', '=', NULL);