将多个值存储在mysql的单列中


store multiple values in single column in mysql

表名:实习,现在我想为公司名称XYZ存储"skill_required",类似于skillare:php、java等mow问题是在公司注册时,我必须指定的文本或复选框。。等等,以及如何将其存储在数据库中?带id?如php的1,java 的2

第二。当学生搜索实习时,他在感兴趣的领域指定php,其他学生指定java,所以公司xyz必须显示给两个学生搜索,因为公司同时提供php和java实习,那么如何检索该表单数据库,?技能名称和技能id应该有单独的表格吗?

您应该有一个单独的表,将每个公司与他们所需的所有技能联系起来,例如Company表:

CompanyId  CompanyName
_________  ___________
1          BobCo
2          PeteCo
...

以及Internship表格中所需的技能:

CompanyID  SkillID
_________  _______
1          1
1          2
2          1
...

然后你可以有一个单独的Skill表,将技能ID映射到技能名称:

SkillID  SkillName
_______  _________
1        PHP
2        Java
3        MySQL
...

例如,如果Java是技能2,那么您可以执行以下操作:

SELECT CompanyID FROM Internship WHERE SkillID=2;

该查询返回需要Java的公司。或者,一个更复杂的查询:

SELECT CompanyName 
FROM Company JOIN Internship USING(CompanyID)
  JOIN Skill USING(SkillID)
WHERE SkillName = 'Java'

您不应该将多个值放在一列中,因为这样做会破坏第一个正常形式。请查看该链接,了解您可能遇到的问题以及如何解决这些问题。