2016-03-25 7 views
0

私はcodeigniterでフィルタ検索機能を実行しようとしています。私は製品と呼ばれるテーブルを持っており、私のシステムは、これらの製品をカテゴリ別および日付別にフィルタリングする機能を持っています。mysql intersectionの実装

SELECT * from products WHERE product_category='Cloth' 
INTERSECT 
SELECT * from products WHERE ('insert date logic here') 

だから、それは製品の名前と同じテーブルから(ID経由)のレコードを返す必要があります。私はこのようになります念頭に置いて、MySQLのコードを持っています。しかし、mysqlにINTERSECTはありませんので、これを行う方法はわかりません。どんな助けでも大歓迎です!

これは私のコードは、ちょうどなぜあなただ​​けandを使用することはありません製品カテゴリ

$this->db->limit($limit,$start); 
    $query = $this->db->query('SELECT * from product_advertised WHERE quantity > 0 AND prodcatid='.$prodcats[0].' LIMIT '.$start.','.$limit); 

    if(sizeof($prodcats > 1)) { 
     $query_str = "SELECT * FROM product_advertised WHERE quantity>0 AND "; 
     $str=""; 
     for($i = 0;$i < sizeof($prodcats);$i++) { 
      if($i != sizeof($prodcats)-1) { 
       $str = $str. "prodcatid=".$prodcats[$i]." OR "; 
      } 
      else { 
       $str = $str. "prodcatid=".$prodcats[$i]." LIMIT ".$start.",".$limit; 
      } 
     } 
     $query_str .= $str; 
     $query = $this->db->query($query_str); 
    } 
    if($query->num_rows() > 0) { 
     foreach($query->result() as $row) { 
      $data[] = $row; 
     } 
     return $data; 
    } 
    return false; 

答えて

0

の一部のためにあるのですか?

SELECT * 
from products 
WHERE product_category = 'Cloth' AND 
     ('insert date logic here'); 
+0

これは、製品カテゴリの一部のためだけに、まだ日付なしのコードです。それはちょっと複雑なんだけど...単純なことをすればいいとは思っていません。/(編集中) –

関連する問題