zoukankan      html  css  js  c++  java
  • ThinkPHP 中 where条件 or,and 同时使用

    ('a'=1 and 'b'=2) or ('c'=3 and 'd'=4) and 'e'=5
    $where_1['a'] = 1;
    $where_1['b'] = 2;
    $where_2['c'] = 3;
    $where_2['d'] = 4;
    $where_main['_complex'] = array(
        $where_1,
        $where_2,
        '_logic' => 'or'
    );
    $where_main['e'] = 5;
    $this->user->where($where_main)->select();
    SELECT * FROM `ecs_order_info` WHERE ( ( `order_status` = 5 AND `shipping_status` = 2 ) OR `order_status` = 6 ) AND `user_id` = 1
    
    上面标红的where查询语句在TP中的拼接如下:
    
        $order=M('order_info');
        $where['order_status']=5;
        $where['shipping_status']=2;
        $map['_complex'] = $where;
        $map['order_status']=6;
        $map['_logic'] = 'or';  
        $final['_complex'] = $map;
        $final['user_id']=1;
    
       然后直接查询就可以了: $order->where($final)->select();
    
       问题来了,怎么检测我们写的sql语句没有错呢?执行下面这条语句就可以了,只会翻译成sql语句,不会执行。
    
       echo $order->where($final)->fetchSql(true)->select();
    --------------------- 
    作者:gerberasn 
    来源:CSDN 
    原文:https://blog.csdn.net/landylxy/article/details/70139841 
    版权声明:本文为博主原创文章,转载请附上博文链接!
  • 相关阅读:
    ps 允许执行不信任的脚本
    mysql 某表某列支持 emoji
    jenkins
    成为真正的win10 超级管理员,解决win+r 不以管理员身份运行
    bat curl 定时请求
    jq 日期区间处理
    jq 日期区间处理
    ubuntu cli
    nginx启动两个flask项目
    nginx 配置http和https验证
  • 原文地址:https://www.cnblogs.com/phpfensi/p/10493817.html
Copyright © 2011-2022 走看看