[英]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.