<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>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                [TOC] ### select($columns) ~~~php //不寫select,默認是* //SELECT * FROM `user` $query->from('user'); //字符串形式 //SELECT `id`, `lying`.`sex`, count(id) AS `count` $query->select('id, lying.sex, count(id) as count'); //如果需要對括號內的字段進行反引號處理 //SELECT `id`, `lying`.`sex`, count([[id]]) AS `count` $query->select('id, lying.sex, count(`id`) as count'); //數組形式 //SELECT `id`, `lying`.`sex`, `username` AS `name` $query->select(['id', 'lying.sex', 'name'=>'username']); //使用到包含逗號的數據庫表達式的時候,你必須使用數組的格式,以避免自動的錯誤的引號添加 //SELECT CONCAT(first_name, ' ', last_name) AS `full_name`, `email` $query->select(["CONCAT(first_name, ' ', last_name) AS full_name", 'email']); //或者 //SELECT CONCAT(first_name, ' ', last_name) AS `full_name`, `email` $query->select(['full_name'=>"CONCAT(first_name, ' ', last_name)", 'email']); //同理,如果需要對括號內的字段添加反引號,則 //SELECT CONCAT(`first_name`, ' ', `last_name`) AS `full_name`, `email` $query->select(['full_name'=>"CONCAT([[first_name]], ' ', [[last_name]])", 'email']); //使用子查詢 //SELECT (SELECT count(`money`) from `pay` where` id`=1) AS `money` $subquery = $db->query()->select('count([[money]])')->from('pay')->where(['id'=>1]); $query->select('money'=>$subquery); ~~~ ### distinct($distinct = true) ~~~php //在查詢字段的前面加上DISTINCT //SELECT DISTINCT `id`, `username` $query->select(['id', 'username'])->distinct(); //去掉DISTINCT //SELECT `id`, `username` $query->select(['id', 'username'])->distinct(false); ~~~ ### from($tables) ~~~php //字符串形式 //SELECT * FROM `user`, `lying`.`member` AS `member` $query->from('user, lying.menber as member'); //使用表前綴 //SELECT * FROM `prefix_user` $query->from('{{%user}}'); //使用數組,別名以及表前綴 //SELECT * FROM `prefix_table1`, `table2` AS `t2` $query->from(['{{%table1}}', 't2'=>'table2']); //使用子查詢 //SELECT * FROM (SELECT `id`, `username` FROM `user` WHERE `id`=1) AS `t` $subquery = $db->query()->select('id, username')->from('user')->where(['id'=>1]); $query->from(['t'=>$subquery]); ~~~ ### join($type, $table, $on = null, $params = []) ~~~php //支持的join類型:'left join','right join','inner join' //SELECT * FROM `user` LEFT JOIN `table` ON user.id=table.uid $query->from('user')->join('left join', 'table', 'user.id=table.uid'); //關聯的table請參考`from()`的用法,包括別名、子查詢等 //SELECT * FROM `user` LEFT JOIN `table` AS `t` ON user.id=t.uid $query->from('user')->join('left join', ['t'=>'table'], 'user.id=t.uid'); //子查詢 //SELECT * FROM `user` LEFT JOIN (SELECT `uid`, `username` FROM `pay` WHERE `uid` = 1) AS `p` ON user.id=p.uid $subquery = $db->query()->select('uid, username')->from('pay')->where(['uid'=>1]); $query->from('user')->join('left join', ['p'=>$subquery ], 'user.id=p.uid'); //ON條件支持字符串形式和數組形式,如果要使用'字段1 = 字段2'的形式,請用字符串帶入,用數組的話'字段2'將被解析為綁定參數 //字符串形式如果要給字段加上反引號,可以用[[字段]]形式 //字符串形式ON + 參數綁定(ON條件參見where()用法) //SELECT * FROM `user` LEFT JOIN `table` AS `t` ON `user`.`id`=`t`.`uid` AND `t`.`id` < 100 $query->from('user')->join('left join', ['t'=>'table'], '[[user.id]]=[[t.uid]] and [[t.id]] < :tid', [':tid'=>100]); //數組形式ON(ON條件參見where()用法) //SELECT * FROM `user` LEFT JOIN `table` AS `t` ON `t`.`id` > 100 $query->from('user')->join('left join', ['t'=>'table'], ['>', 't.id', 100]); //下面這種用法是錯誤的,因為`user.id`會被解析成字符串,而不是字段,除非你確定你要這么用 //SELECT * FROM `user` LEFT JOIN `table` AS `t` ON `t`.`id` = 'user.id' $query->from('user')->join('left join', ['t'=>'table'], ['t.id'=>'user.id']); //join支持多次調用哦 $query->from('user')->join('left join', ['t1'=>'table1'], '[[user.id]]=[[t1.uid]]'); ->join('right join', ['t2'=>'table2'], '[[user.id]]=[[t2.uid]]'); ~~~ ### leftJoin($table, $on = null, $params = []) ~~~php 其實就是join的封裝,type默認為left join ~~~ ### rightJoin($table, $on = null, $params = []) ~~~php 其實就是join的封裝,type默認為right join ~~~ ### innerJoin($table, $on = null, $params = []) ~~~php 其實就是join的封裝,type默認為inner join ~~~ ### where($condition, $params = []) > 字符串形式 ~~~php //WHERE id=1 $query->where('id=1 and sex > 0'); //WHERE `id`=1 $query->where('[[id]]=1'); //對字段名加上反引號 //WHERE `id`=1 $query->where('[[id]]=:id', [':id'=>1]); //參數綁定(推薦) ~~~ > 數組形式 數組形式的條件標準格式為: ~~~ [運算符, 操作1, 操作2, ...] ~~~ 并且操作支持無限級嵌套: ~~~ [運算符, 操作1, [運算符1, 操作2, 操作3, ...], ...] ~~~ 1. = ~~~php //WHERE `id`=1 $where = ['=', 'id', 1]; $where = ['id'=>1]; //簡寫方式,等同于上面用法 $subquery = $db->query()->select(['MAX([[id]])'])->from(['user']); //SELECT MAX(`id`) FROM `user` //WHERE `id` = (SELECT MAX(`id`) FROM `user`) $where = ['=', 'id', $subquery]; //子查詢 //WHERE `id` IN (SELECT MAX(`id`) FROM `user`) $where = ['id'=>$subquery]; //子查詢,簡寫方式會變成IN,這里要特別注意 ~~~ 2. AND ~~~php //WHERE `id`=1 AND `sex`=2 $where = ['and', ['=', 'id', 1], ['=', 'sex', 2]]; $where = [['=', 'id', 1], ['=', 'sex', 2]]; //AND條件為默認值,可以省略,等同于上面用法 $where = ['id'=>1, 'sex'=>2]; //簡寫形式,等同于上面用法 ~~~ 3. OR * 和`AND`用法一致,只不過`OR`運算符不能省略 4. IN ~~~php //WHERE `id` IN (1, 2, 3) $where = ['in', 'id', [1, 2, 3]]; $subquery = $db->query()->select(['id'])->from(['user']); //SELECT `id` FROM `user` //WHERE `id` IN (SELECT `id` FROM `user`) $where = ['in', 'id', $subquery]; $where = ['id'=>$subquery]; //簡寫方式,等同于上面用法 ~~~ 注意:錯誤用法 `$where = ['in', 'id', '(1, 2, 3)'];` 5. NOT IN * 和`IN`用法一致,只不過不能使用簡寫方式 6. BETWEEN ~~~php //WHERE `id` BETWEEN 1 AND 10 $where = ['between', 'id', [1, 10]]; ~~~ 7. NOT BETWEEN * 和`BETWEEN`用法一致 8. LIKE ~~~php //WHERE `name` LIKE '%lying%' $where = ['like', 'name', '%lying%']; ~~~ 9. NOT LIKE * 和`LIKE`用法一致 10. IS NULL / IS NOT NULL ~~~php //WHERE `sex` IS NULL $where = ['null', 'sex', true]; $where = ['sex'=>null]; //簡寫方式,等同于上面用法 //WHERE `sex` IS NOT NULL $where = ['null', 'sex', false]; ~~~ 11. EXISTS ~~~php $subquery = $db->query()->select(['id'])->from(['user']); //WHERE EXISTS (SELECT `id` FROM `user`) $where = ['EXISTS', 'id', $subquery]; ~~~ 注意:錯誤用法 `$where = ['EXISTS', 'id', '(SELECT id FROM user)'];` 12. NOT EXISTS * 和`EXISTS`用法一致 13. \>、<、>=、<= 等這邊沒有列出的標準DB操作符 ~~~php //WHERE id > 1 $where = ['>', 'id', 1]; //WHERE id <= 1 $where = ['<=', 'id', 1]; ~~~ > 數組用法示例 ~~~php $subquery = $db->query()->select(['id'])->from(['user']); //WHERE `sex` = 1 AND (`id` > 100 OR `time` IS NULL) AND `id` IN (SELECT `id` FROM `user`) $where = ['sex'=>1, ['or', ['>', 'id', 100], 'time'=>null], 'id'=>$subquery]; ~~~ ### andWhere($condition, $params = []) * 和`where()`用法一致,只不過是在`where()`的條件上再追加`AND`條件 ~~~php $query->where(['status' => 1]); if (!empty($search)) { $query->andWhere(['like', 'title', "%{$search}%"]); } ~~~ ### orWhere($condition, $params = []) * 和`andWhere()`用法一致,只不過是在`where()`的條件上再追加`OR`條件 ### groupBy($columns) ~~~php //GROUP BY `id`, `sex` $query->groupBy('id, sex'); $query->groupBy(['id', 'sex']); //等同于上面的用法 ~~~ ### having($condition, $params = []) * 參見`where()`的用法 ### andHaving($condition, $params = []) * 參見`andWhere()`的用法 ### orHaving($condition, $params = []) * 參見`orWhere()`的用法 ### orderBy($columns) ~~~php //ORDER BY `id` ASC, `sex` DESC $query->orderBy('id, sex desc'); $query->orderBy(['id', 'sex'=>SORT_DESC]); //等同于上面的用法 ~~~ ### limit($offset, $limit = null) ~~~php //LIMIT 1 $query->limit(1); //LIMIT 10, 20 $query->limit(10, 20); ~~~ ### union(Query $query, $all = false) ~~~php $query1 = $db->query()->from(['user1']); $query2 = $db->query()->from(['user2']); //SELECT * FROM `user1` UNION (SELECT * FROM `user2`) $query1->union($query2); //SELECT * FROM `user1` UNION ALL (SELECT * FROM `user2`) $query1->union($query2, true); ~~~
                  <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>

                              哎呀哎呀视频在线观看