按顺序排序的SQL数据获取条件(首先在哪里/首先按顺序排在第二位,而第二位是/喜欢按顺序排在下一个顺序,下一个顺序排在第二顺序)
实际上我想首先从品牌获得结果,从标题获得第二名,从cat1 / 2/3获得第三名搜索“dev”
INSERT INTOproduct_list
(product_id
,brand
,title
,cat1
,cat2
,cat3
) VALUES (1, 'lux mos', 'lux mos', 'lux mos dev', 'lux mos', 'lux mos'), (2, 'lux mos', 'lux mos dev', 'lux mos', 'lux mos', 'lux mos'), (3, 'lux mos dev', 'lux mos', 'lux mos', 'lux mos', 'lux mos'), (4, 'lux mos', 'lux mos', 'lux mos dev', 'lux mos', 'lux mos'), (5, 'lux mos dev', 'lux mos', 'lux mos', 'lux mos', 'lux mos');then result for search "dev" is as product_id in order 3, 2, 1, 4
public function ProductList($PageNo = 0) { $search_str = 'dev'; $this->db->select('*'); if(isset($_GET['q'])){ $this->db->or_like('Brand', $search_str); $this->db->or_like('title', $search_str); $string = str_replace(' ', '-', $search_str); // Replaces all spaces with hyphens. $string = preg_replace('/[^A-Za-z\-]/', '', $string); $string = strtolower($string); $str_Arr = explode(' ', $string); foreach($str_Arr as $str){ if($str!=''){ $this->db->or_like('Brand', $str); $this->db->or_like('title', $str); } } } elseif(isset($_GET['cat1'])){ $this->db->where('cat1',$_GET['cat1']); } elseif(isset($_GET['cat2'])){ $this->db->where('cat2',$_GET['cat2']); } elseif(isset($_GET['cat3'])){ $this->db->where('cat3 like','%'.$_GET['cat3'].'%'); } $this->db->group_by("product_id"); $query = $this->db->get('product_list', 8, $PageNo*8); $result = $query->result(); return $result;
}