2017-07-11 37 views
1

基本上我需要创建一个表,其中一列需要在同一个字段中有两个产品。 我已经创建了表格的其余部分,但是当涉及到将多个产品输入到同一列时,它不会让我。我尝试了许多不同的代码,但似乎无法解决如何使其可行,例如“product1和product2”,“product1,product2”等。 任何人都知道如何解决这个问题?非常感谢,因为我是新的工作台。我想在mysql工作台表中的同一列的同一字段中有两个不同的值?

+2

数据库字段只能有一个值(每个记录);该值可以是连接成单个字符串值的值列表,但这几乎总是做错事情的错误方式。 – Uueerdo

+0

你不能像这样将一个元组放入列中。连接可以用于你的用例吗? – McGlothlin

+0

是的,我不会真的想把它集中到一个单一的值,因为这对用户来说不合理。它基本上是一个整数的ID,但因为一行有两个不同的ID,我想把它们放在他们的顺序。无论如何,我可以做到这一点? – Certi

回答

-1

如果需要,您可以在MySQL中以逗号分隔的方式(A,B)或JSONArray([A,B])存储多个值。但是您将无法使用它们执行任何操作,因为MySQL会将该集合视为单个实体。

你在找什么是人们使用PostgreSQL的原因之一。它支持可以填充到单元格中的数据类型的数组。即与Integer一样,它也具有Integer []数据类型和文本[]。它也支持阵列相关的操作,你可以很好地处理它们。

需要记住的一件事是规范化的数据库结构不需要这样。你可以打破你的问题用简单的SQL来解决这个问题如下:
表:

1-> Fruits->苹果,芒果
2->颜色 - >红,绿,蓝

可以是存储为
表1:
1->水果
2->颜色

表2:
1->苹果
1->芒果
2->红
2->绿色
2->蓝

+0

这个答案有什么不好? –

2

如果您发现您的数据需要有“不同数量的一行多个值”,然后(99满分100次)答案是另一张表,用于参照原始表的“父”行保存这些值。

  • 答案是不复制行,除了改变它的那一个字段。
  • 答案几乎不会将值连接在一起并将它们塞入到一个字段中。
  • 答案有时(尽管很少)有多个字段; “空”的设置为NULL。 但通常这只有当多个值具有略微分离的含义或目的,或者它们的顺序很重要时。
相关问题