【问题标题】:Multi value filter using mysql使用mysql的多值过滤器
【发布时间】:2020-09-24 15:19:53
【问题描述】:

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

提前谢谢你。

【问题讨论】:

  • 通过重新设计您的表以遵守规范化约定,以便您可以使用 RDBMS 的功能!为什么要这样存储技能?

标签: mysql sql csv where-clause


【解决方案1】:

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

select * from candidates where find_in_set(?, skills)

? 代表您搜索的技能。

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

推荐阅读:Is storing a delimited list in a database column really that bad?

【讨论】:

    猜你喜欢
    • 2014-08-06
    • 1970-01-01
    • 2016-06-04
    • 1970-01-01
    • 1970-01-01
    • 2015-05-01
    • 2012-09-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多