Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/61.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php &引用;其中列不为空";使用Kohana v3查询生成器_Php_Mysql_Database_Kohana_Kohana 3 - Fatal编程技术网

Php &引用;其中列不为空";使用Kohana v3查询生成器

Php &引用;其中列不为空";使用Kohana v3查询生成器,php,mysql,database,kohana,kohana-3,Php,Mysql,Database,Kohana,Kohana 3,Kohanav3查询生成器是否可以使用Is NOT NULL运算符 where($column,$op,$value)方法需要所有三个参数,即使我指定了 ->where('col', 'IS NOT NULL', '') 它构建了一个无效的查询 SELECT * FROM table WHERE col IS NOT NULL ''; 不确定(现在是凌晨3点),但是->where('col','',DB::expr('IS Not NULL'))可能会起作用。这可以与ORM模块一起工作

Kohanav3查询生成器是否可以使用Is NOT NULL运算符

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

->where('col', 'IS NOT NULL', '')
它构建了一个无效的查询

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

不确定(现在是凌晨3点),但是
->where('col','',DB::expr('IS Not NULL'))
可能会起作用。

这可以与ORM模块一起工作,而且输入量会少一些

->where('col', '!=', NULL);
这应该起作用:

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

操作员未逃脱:

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

无需使用DB::expr,Kohana已经支持您想要的内容。

WHERE子句包含3个参数,第一个和第三个参数总是试图转换为backticks格式(即“table”和“field”)。只要至少在第3个参数上提供DB::Expr,就可以不在第1个和第2个参数中留下任何内容,并且以下参数也可以工作:

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

这已被证实适用于Kohana 3.2及以上版本。

GENIUS。先生,你是个圣人。我认为最好把'IS NOT'作为第二个参数,并且值为空。就像盖瑞回答的那样。使用DB::expr很好,但会增加不必要的额外开销(在本例中)是的,最好的解决方案是->where('col','is NOT',NULL)v3就可以了。你是如此接近!您所要做的就是将NULL移到value参数:
->其中('col','IS'NOT',NULL)
现在v3有了更好的文档,我已经有机会习惯了——我非常喜欢它。这就是检查值是否为NULL,OP want是否为NULL。