【发布时间】:2017-07-06 06:41:49
【问题描述】:
我有以下问题 我有两个表,第一个表包含一个类似 01001101110 的字符串,每个数字代表表二中提到的技能。
所以第一个数字显示一个零,表示此人不具备 id 1 的技能。第二个数字显示此人确实具有 id 2 的技能
表 1:
|-----------|-----------------------------|
| name | skillset |
|-----------|-----------------------------|
| John | 01001101110 |
|-----------|-----------------------------|
表 2:
|-----------|-----------------------------|
| id | skill |
|-----------|-----------------------------|
| 1 | polite |
|-----------|-----------------------------|
| 2 | easy going |
|-----------|-----------------------------|
现在我需要创建带有结果的 i 查询
|-----------|-------------------|------------------|
| name | polite | easy going |
|-----------|-------------------|------------------|
| John | 0 | 1 |
|-----------|-------------------|------------------|
【问题讨论】:
-
你到底为什么要设计这样的桌子?规范化您的数据并对其进行查询变得微不足道。
-
我以前没有为公司工作的脚本编写者做过,我们现在必须忍受它。但我知道重新设计是一种选择,但不是我现在正在寻找的。
-
技能列表长 158 项,正在与两个表进行匹配。像这样看待它的想法非常巧妙,但也许不是解决它的最佳方法。前编码员的所有学分
-
你可以用
substring得到一个字符串的字符。将行放入列中称为枢轴,例如here。如果你现在在想:“天哪,我必须写 158 个案例陈述吗?”。不,你不必那样做。您甚至不必加入您的第二张桌子。您只需要编写 158 个子字符串语句,因为该表设计对于进行数据透视来说还算不错。别的不多,但至少做一个支点。 (因为它基本上已经是一个支点)。 -
我改写了你的问题的标题。 Stack Overflow 更喜欢标题描述或总结问题,而不是仅描述您的“Noob using MySQL”。 :-)
标签: mysql pivot-table dynamic-sql bit-fields