mysql - 使用mysql的多值过滤器
问题描述
我有一个候选人表。其中,我有一个名为技能的列。它使用分隔符存储多个值。现在我想创建一个包含技能的搜索过滤器。我怎样才能做到这一点?
先感谢您。
解决方案
在 MySQL 中,一个选项使用find_in_set()
:
select * from candidates where find_in_set(?, skills)
?
代表您搜索的技能。
也就是说,一个更好的选择是规范化您的模式。您不应该在单个列中存储多个值。相反,您应该有一个单独的表来存储候选人和技能之间的关系,每个候选人/技能元组位于单独的行中。
推荐阅读:在数据库列中存储分隔列表真的那么糟糕吗?
推荐阅读
- python - 字典中存在检查列表项
- apache-spark - 在 PySpark 中创建一个类的 Apache Spark RDD
- html - 这个按钮如何在可见和隐藏之间切换
- angular - 角度常数文件导出
- syntax - 在 Verilog 中使用任务使 LED 闪烁
- angular - Angular 组件测试用例出错:类型错误:无法读取未定义的属性“contractno”
- spring - SpringBoot 2.3.0 上的 SpringDataCouchbase @Query 无法像以前那样工作
- css - 每个方格的悬停效果需要的方格多于应有的方格
- java - 无法从 MapActivity 访问可绘制对象
- go - 如何在 Neo4j Go 驱动程序中解析路径