cakephp – Cake PHP复杂查找’OR’与null和空字符串无法正常工
发布时间:2020-12-13 17:19:44 所属栏目:PHP教程 来源:网络整理
导读:Cake PHP复杂发现’OR’opertor与null无法正常工作… $conditions = array( 'Person.id' = array(2,4,1,23,45,11),'OR' = array( array( array('NOT' = array('Person.image' = null)),array('NOT' = array('Person.image' = '')),),array( array('NOT' = ar
Cake
PHP复杂发现’OR’opertor与null无法正常工作…
$conditions = array( 'Person.id' => array(2,4,1,23,45,11),'OR' => array( array( array('NOT' => array('Person.image' => null)),array('NOT' => array('Person.image' => '')),),array( array('NOT' => array('Person.photos' => null)),array('NOT' => array('Person.photos' => '')),) ) ); 相应的cake sql dump输出查询如下 SELECT `Person`.`id`,`Person`.`created`,`Person`.`modified` FROM `people` AS `Person` WHERE `Person`.`id` IN (2,11) AND ((((NOT (`Person`.`image` IS NULL)) AND (NOT (`Person`.`image` = NULL)))) OR (((NOT (`Person`.`photos` IS NULL)) AND (NOT (`Person`.`photos` = ''))))) ORDER BY FIELD(`Person`.`id`,2,11) ASC LIMIT 3 在蛋糕条件数组中,我给Person.image不为null或”,但相应的cake sql输出为(NOT(Person.image IS NULL))AND(NOT(Person.image = NULL))它应该像(NOT(Person.image IS NULL))AND(NOT(Person.image =”)). 这里Person.image都与NULL本身进行比较(IS NULL和= NULL),其中Person.image = NULL想与像Person.image =”这样的空字符串进行比较. 这里’Person.image’是’INT’而’Person.photos’是’VARCHAR’类型,但很难从当前阶段改变类型. 如何纠正? 解决方法
您不必使用关联数组来定义条件.您可以像这样定义它:
$conditions = array( 'Person.id' => array(2,array('NOT' => array('Person.image = "" ')),array('NOT' => array('Person.photos = "" ')),) ) ); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |