PHP MySQL查询从多个ID数组中获取类别名称

时间:2018-04-03 14:52:09

标签: php mysql

我有类别表tb_category

categoryid | category_name
1          | New Product
2          | Promo

我有产品表tb_product

productid | product_name | categoryid_fk
1         | Watch        | 1
2         | Bag          | 1,2

现在我希望从productid = 2获取类别名称categoryid_fk = 1,2

怎么做?

到目前为止我的SQL代码:

//category id --> 1,2
$qCategory = mysqli_query($con, "SELECT * FROM tb_category WHERE categoryid IN ('" . $dProduct['categoryid_fk'] . "')");
foreach($qCategory as $cause)
{
    echo $cause['category_name'];
}

当我运行查询时,我只获得带有单categoryid的类别名称。

1 个答案:

答案 0 :(得分:1)

使用find_in_set函数。用法:find_in_set(search_string,字符串列表)。 请参阅此处的演示:http://sqlfiddle.com/#!9/4e5a48/1

编辑:由于需求已更改,请添加替换函数以删除空格,以便find_in_set可以正常工作。

SELECT tb_category.*  
FROM tb_category,tb_product 
WHERE find_in_set(categoryid, replace(categoryid_fk,' ','')) > 0
and productid = 2;

Result:
categoryid  category_name
1           New Product
2           Promo