加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

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 = "" ')),)
    )
);

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读