首页 > 解决方案 > 使用mysql的多值过滤器

问题描述

我有一个候选人表。其中,我有一个名为技能的列。它使用分隔符存储多个值。现在我想创建一个包含技能的搜索过滤器。我怎样才能做到这一点?

先感谢您。

标签: mysqlsqlcsvwhere-clause

解决方案


在 MySQL 中,一个选项使用find_in_set()

select * from candidates where find_in_set(?, skills)

?代表您搜索的技能。

也就是说,一个更好的选择是规范化您的模式。您不应该在单个列中存储多个值。相反,您应该有一个单独的表来存储候选人和技能之间的关系,每个候选人/技能元组位于单独的行中。

推荐阅读:在数据库列中存储分隔列表真的那么糟糕吗?


推荐阅读