我有以下表格:
tbljobpost:
+-------------------------------------+
| job_id | job_title | skill_cat_id |
+-------------------------------------+
| 1 | Programmer | 1,2,3,4,5,6,7 |
+-------------------------------------+
tblappskills:
+-----------------------------+
| app_control | skill_cat_id |
+-----------------------------+
| 1 | 1,2,4,5,6 |
| 2 | 1,2,3,7,4 |
| 3 | 1,2,3,4,5,6,7 |
| 4 | 7,1,4,5,6,2,3 |
+-----------------------------+
如何查询或过滤使用tblappskills
逗号分隔的同一skill_cat_id
tbljobpost
?
结果将是这样的:
+-----------------------------+
| app_control | skill_cat_id |
+-----------------------------+
| 3 | 1,2,3,4,5,6,7 |
| 4 | 7,1,4,5,6,2,3 |
+-----------------------------+
答案 0 :(得分:1)
您的解决方案不适合first normal form
您应该将技能类别存储在不同的单元格中,如下所示:
+----------------------------+
| app_control | skill_cat_id |
+----------------------------+
| 1 | 1 |
| 1 | 2 |
| 2 | 1 |
| 4 | 4 |
+----------------------------+
然后,您可以轻松地JOIN表并选择与您想要的值匹配的行。 app-control-id
在表格中出现不止一次并不重要。但是,如果您决定将其他数据添加到该表,则应在单独的表中执行此操作以避免冗余,如下所示:
您的新表(包含有关app-control
的详细信息)与我上面提到的表1(0..N)相关。设计很难解释但很容易。如果你研究上面提到的正常形式,你会很容易理解这一点。