[英]select products from specific category codeigniter
提供以下類別的產品
product_id category_id
2 1,2
3 1,3
4 1,13
2 2,5
我想選擇特定類別的產品,例如類別2中的所有產品。什么是sql語法
您可以使用FIND_IN_SET
來搜索逗號分隔的值。
$this->db->where("FIND_IN_SET( '$category_id' , category_ids) ");
所以你整個查詢就像
$this->db->select();
$this->db->from('table_name');
$this->db->where("FIND_IN_SET( '$category_id' , category_ids) ");
$query = $this->db->get();
return $query->result();
您可以嘗試使用此FIND_IN_SET
來搜索逗號分隔的值。
<?php
$this->db->select();
$this->db->from('table_name');
$this->db->where(' FIND_IN_SET(category_ids, "' . $category_ids . '") > 0', NULL, false);
$query = $this->db->get();
return $query->result();
?>
希望對您有所幫助。
您可以使用簡單的SQL查詢,並在模型中使用它。
public function get_product_category($category_id)
{
$query = "SELECT * FROM product_table WHERE category_id LIKE '%$categoryid%'";
return $this->db->query($query, $category_id)->result();
}
它將在您的產品表中找到category_id
包含示例2
。
但是,就像M Khalid Junaid所說的那樣,您最好了解數據庫規范化。
例如: 標准化表
這是歸一化之前的表,產品ID重復2
如果那是主鍵怎么辦? 因此,嘗試將您的表更改為規范化表,這將對您有很大幫助。
product_id category_id
2 1,2
3 1,3
4 1,13
2 2,5
這是一個新表,在創建名為group_table
或任何其他名稱的表后將被規范化。 然后將group_id
設置為primary_key
group_id product_id category_id
1 2 1
2 2 2
3 3 1
4 3 3
5 4 1
6 4 13
7 2 5
從category_id查找產品的查詢更簡單,只是
SELECT * FROM group_table WHERE category_id = $category_id
或您要創建的任何條件。 就像您想獲取產品名稱一樣,只需從product_table
JOIN
表
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.