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

标签 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的类别名称。

最佳答案

使用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/

相关文章:

php - 使用 MVC Codeigniter 分隔页眉和页脚

php - PHP设置计时器,然后调用一个函数

mysql - Python 行数返回负数 1

php - 将复选框 ID 传递给另一个 php 文件

php - 在 laravel 中获得总预订量为零的天数

java - Mapstore 未从数据库 Hazelcast 加载数据

php - 使用匿名函数按两个对象属性对数组进行排序

php - 如何在codeigniter中调用postgresql函数?

PHP/MySQL 搜索引擎,我找不到图像文件夹路径

mysql - Azure Advisor for MySql 建议将 TLS 版本更新到 1.2 - 服务器已在运行 'tls_version: TLSv 1.2'