<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                一、COUNT()方法統計去重: ~~~ //鏈式操作最后是COUNT()方法結尾時,distinct要放到COUNT方法里面的字段參數前面才起統計去重作用 //錯誤的寫法: $query->distinct(true)->field('ots.order_no')->where($map)->count(); //將生成這樣的sql SELECT DISTINCT COUNT(*) AS think_count FROM `order_ticket_sell` //正確的寫法: $query->where($map)->count('distinct ots.order_no'); //將生成這樣的sql SELECT COUNT(DISTINCT `ots`.`order_no`) AS think_count FROM `order_ticket_sell` ~~~ 二、ThinkPHP3.2里面的WHERE的數組參數可以設置\_string來接收字符串查詢條件,跟數組查詢條件一起混合成一個數組傳給WHERE作為查詢條件。ThinkPHP6使用Db::raw()替代了\_string來實現混合查詢。 使用Db::raw()也可以對字段使用mysql函數: ~~~ //原來ThinkPHP3.2這樣寫的: if(empty($count_type)) { $map['sell_time'] = array(array('neq','null'),array('EGT',$dtBegin),array('ELT',$dtEnd))$tsort = 'order_ticket_sell.sell_time desc'; ~~~ ~~~ } else { $map['_string'] = "CONCAT(tic_feature.date,' ',tic_feature.time)>='" . $dtBegin . "' and CONCAT(tic_feature.date,' ',tic_feature.time)<='" . $dtEnd . "'"; $tsort = 'tic_feature.date desc, tic_feature.time desc'; } //現在ThinkPHP6可以改成這樣了: if(empty($count_type)){ $key_map['sell_time'] = array('ots.sell_time', 'between', array($dt_begin,$dt_end)); $tsort = ['ots.sell_time'=>'desc']; } else { $tic_ft_raw = Db::raw("CONCAT(tic_f.date,' ',tic_f.time)"); $key_map['tic_ft_time'] = array($tic_ft_raw, 'between', [$dt_begin, $dt_end]); $tsort = ['tic_f.date'=>'desc', 'tic_f.time'=>'desc']; } //ThinkPHP6不像ThinkPHP3.2的WHERE那樣能用關聯數組了,所以自己建個關聯數組來存放查詢條件,以便需要修改或刪除某個查詢條件的時候,可以使用關聯鍵方便的修改或UNSET掉關聯鍵。例如下面的查詢不需要pay_method這個查詢條件了: UNSET($key_map['sell_time']); ~~~ ~~~ //然后把刪掉了pay_method后的查詢條件再提出來,以便放到WHERE里去: $map = array_values($key_map['sell_time']); ~~~ 三、Query對象可以復用,只要修改WHERE查詢條件就可以了,這樣代碼冗余少些,效率也高些: ~~~ //如果是一直在復用最初創建的Query對象,記得要先removeOption('where'),然后再放到新調用的WHERE里去,否則不是更新WHRER條件,而是在原來的WHERE條件后面附加WHERE條件: $key_map['pay_method'] = array('otd.pay_method','=',1); //會員卡支付 $map = array_values($key_map); $ots_query->removeOption('where'); $cardpaytotal = $ots_query->where($map)->sum('price'); ~~~ 四、使用Db::raw的時候,有時會遇到這種錯誤“Invalid parameter number: number of bound variables does not match number of tokens”,換下單引號豪即可,不允許字符串用雙引號。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看