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

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                最近遇到了復雜的查詢語句 , 趁此機會總結一下 , laravel 使用數組格式作為參數的查詢條件 假設有個用戶表 ----------- -- user 用戶表 ----------- ``` ----------- -- user 用戶表 ----------- CREATE TABLE user ( user_id mediumint(8) NOT NULL AUTO_INCREMENT COMMENT '用戶ID', group_id mediumint(8) NOT NULL COMMENT '用戶組ID', user_name varchar(32) NOT NULL COMMENT '用戶名', user_pwd varchar(32) NOT NULL COMMENT '用戶密碼', user_phone int(12) NOT NULL COMMENT '用戶手機號碼', user_sex varchar(6) NOT NULL COMMENT '用戶性別', user_qq mediumint(9) NOT NULL COMMENT '用戶QQ號碼', user_email varchar(64) NOT NULL COMMENT '用戶EMAIL地址', user_address varchar(255) NOT NULL COMMENT '用戶地址', user_mark mediumint(9) NOT NULL COMMENT '用戶積分', user_rank_id tinyint(3) NOT NULL COMMENT '用戶等級', user_last_login_ip varchar(15) NOT NULL COMMENT '用戶上一次登錄IP地址', user_birthday int(13) NOT NULL COMMENT '用戶生日', user_description varchar(255) NOT NULL COMMENT '自我描述', user_image_url varchar(255) NOT NULL COMMENT '用戶頭像存儲路徑', user_school varchar(255) NOT NULL COMMENT '畢業學校', user_register_time int(13) NOT NULL COMMENT '用戶注冊時間', user_register_ip varchar(15) NOT NULL COMMENT '用戶注冊時IP地址', user_last_update_time int(13) NOT NULL COMMENT '用戶上次更新博客時間', user_weibo varchar(255) NOT NULL COMMENT '用戶微博', user_blood_type char(3) NOT NULL COMMENT '用戶血型', user_says varchar(255) NOT NULL COMMENT '用戶語錄', user_lock tinyint(3) NOT NULL COMMENT '是否鎖定,0為不鎖定,1為鎖定', user_freeze tinyint(3) NOT NULL COMMENT '是否凍結,0為不凍結,1為凍結', user_power varchar(255) NOT NULL COMMENT '擁有權限', PRIMARY KEY (user_id) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 ; ``` 創建模型 , 然后依據各種條件查詢數據 ``` <?php //博客用戶查詢 namespace Services\User; # 用戶數據模型 use App\Models\User; class UserService { /** * [getList description] * @author admin 2020-10-26 * @param array $params [description] * @return [type] [description] */ public function getList( $params=[] ) { $where = $this->getListWhere( $params ); # 查詢條數 $count = User::where( $where )->count(); # 分頁 $page_size = isset($params['page_size']) && intval($params['page_size'])>0?intval($params['page_size']):10; $page = isset($params['page']) && intval($params['page'])>0?intval($params['page']):1; # 查詢數據 $rows = User::where( $where ) ->orderBy('user_id','DESC') ->offset( ($page-1)*$page_size ) ->limit( $page_size ) ->get() ->toArray(); # 返回數據 return [ 'rows' => $rows, 'count' => $count, 'page_count' => $count>0?intval(ceil($count / $page_size)) : 1, ]; } /** * [getListWhere description] * @author admin 2020-10-26 * @param array $params [description] * @return [type] [description] */ public function getListWhere( $params=[] ) { $where = []; # 用戶名 精確查詢 = if( isset($params['user_name']) && !empty($params['user_name']) ){ $where[] = ['user_name', '=', $params['user_name']]; } # 用戶名 模糊查詢 LIKE if( isset($params['user_name']) && !empty($params['user_name']) ){ $where[] = ['user_name', 'LIKE', '%'.$params['user_name'].'%']; } # 注冊時間 區間查詢 > < >= <= if( isset($params['start_time']) && !empty($params['start_time']) ){ $where[] = ['user_register_time', '>=', $params['start_time']]; } if( isset($params['end_time']) && !empty($params['end_time']) ){ $where[] = ['user_register_time', '<=', $params['end_time']]; } # 手機號碼 OR查詢 if( isset($params['user_phone']) && !empty($params['user_phone']) ){ $where[] = ['user_name', '=', $params['user_phone'], 'OR']; } # AND OR 組合查詢 # 首先user_power字段的存儲格式為 [文章,圖片,視頻,音頻] # 例如你想要的sql是 # SELECT * FROM user WHERE user_sex=1 AND user_rank_id=2 AND (user_power LIKE '%文章%' OR user_power LIKE '%圖片%') # 這塊是我遇到的最大的問題 # user_sex # user_rank_id 遵循以上 # 用戶權限集合 user_powers if( isset($params['user_powers']) && !empty($params['user_powers']) ){ $where[] = [function( $query )use( $params ){ $tmp_where = []; foreach ($params['user_powers'] as $key=>$value) { $tmp_where[] = ['user_power', 'LIKE', '%'.$value.'%', 'OR']; } return $query->where($tmp_where); }]; } # IN 數組 以user_id為例 if( isset($params['user_ids']) && !empty($params['user_ids']) ){ $where[] = [function( $query )use( $params ){ return $query->whereIn( 'user_id', $params['user_ids'] ); }]; } # 結果返回 return $where; } } ``` 以上基本包括日常的查詢 , 遇到新的會繼續補充
                  <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>

                              哎呀哎呀视频在线观看