使用Kohana v3 Query Builder的“WHERE列IS NOT NULL”

时间:2010-09-26 00:50:03

标签: php mysql database kohana kohana-3

使用Kohana v3 查询生成器是否可以使用IS NOT NULL运算符?

where($ column,$ op,$ value)方法需要所有三个参数,即使我指定了

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

它构建和无效的查询,例如。

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

5 个答案:

答案 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);