将逗号分隔的值与 MySQL 中的单列值匹配 [重复]

Posted

技术标签:

【中文标题】将逗号分隔的值与 MySQL 中的单列值匹配 [重复]【英文标题】:Match comma separated values to single column value in MySQL [duplicate] 【发布时间】:2021-01-02 17:09:16 【问题描述】:

我有一个名为 table 的啤酒样式列表:beer_style_list

其中包含这样的数据

现在我有这样的示例逗号分隔值

American Lager,American Light Lager,Bock,Bohemian Pilsner,Doppelbock,Märzen,München Helles,Münchner Dunke,Schwarzbier,Vienna Lager

我试图从beer_style_list 中获取每个逗号分隔值的 ID

这样输出

152, 153, 154, 155, 156, 157, 158, 159, 160, 161

也用逗号分隔。

【问题讨论】:

数据库版本?您的列表中最多有多少个条目? id 可以有多大? 这对你的客户来说是微不足道的;用 sql 做是可能的,但值得麻烦吗? 全部加载进去,做一个查找表,在你的应用层使用。一次查询,无限低成本查找。 FIND_IN_SET() 可能在这里有用 我的问题是,你打算如何处理整数 CSV 列表? 【参考方案1】:

GROUP_CONCAT 就是为此而设计的。

SELECT GROUP_CONCAT(id) FROM `beer_style_list`

【讨论】:

这里不是洞的问题,只是小部分

以上是关于将逗号分隔的值与 MySQL 中的单列值匹配 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

匹配 Redshift 中逗号分隔字段中的值

如何在Javascript中用逗号分隔的值匹配数组?

如何将不同的逗号分隔值插入mysql中的不同列

sql 如何以逗号为分隔符分割一个字段的值

用逗号将每个值与laravel中的多个选择分开

MySQL函数替换列中的逗号分隔值