我有类别表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
的类别名称。
最佳答案
使用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
关于PHP MySQL 查询从多个 ID 数组中获取类别名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49633083/