首页 > 解决方案 > 使用逗号分隔行中的数据执行连接

问题描述

我得到了一个项目,其中有多个类别存储在逗号分隔列表中的一行中(例如 1,2,3)。然后我有一个类别表,其中包含如下所示的类别:

ID  ShowcaseCategory        DisplayOrder 
1   Member's Work           0 
2   Eastern Resorts         1 
3   WesternResorts          2 
    
4   Products                4 
5   Nordic Skiing           3

我希望能够根据逗号分隔列表中的多个值从表中提取 ShowcaseCategory(从上方)。例如,如果类别包含 1,5,我将获得 Member's Work 和 Nordic Skiing。

我想我需要把它放在一个数组中,可能会爆炸它并能够在 ID 上做一些连接以获得(字面)ShowcaseCategory。或者,有没有更简单的方法来做到这一点?

最后,我想动态构建一个类别复选框列表,以便可以更新它们。

感谢所有帮助

标签: phpmysqlcsvwhere-clause

解决方案


一种选择使用find_in_set(). 假设该参数:categories_list包含类别 ID 的 csv 列表,您将执行以下操作:

select ShowcaseCategory
from mytable
where find_in_set(id, :categories_list)

推荐阅读