多个值存储在MySQL数据库的单列中?

时间:2009-12-29 10:19:32

标签: mysql database-design types data-modeling

如何在一个属性中存储多个值。 例如: 栏名:电话 我想将5,7和16这三个不同的值存储在一行中的一列(电话)中。

3 个答案:

答案 0 :(得分:6)

你不应该这样做。它表明数据库设计不正确。

但是如果你必须这样做而不改变你的数据库设计。您可以使用特殊胶水加入所有电话号码,确保不属于任何电话号码,例如%。因此,5,7和16将全部存储在varchar类型的一列中5%7%16,稍后您的应用程序将根据需要将它们拆分。

答案 1 :(得分:2)

您可以用“,”或“;”分隔不同的值吗? 查询内容时,只需在分隔符上分割字符串....

否则我认为这是不可能的。

答案 2 :(得分:1)

例如,用逗号分隔它们?请注意,不建议这样做,如果您需要同一列的多个值,则需要多行,或者最好使用辅助表来保存所有电话号码。

但如果该列是VARCHAR或其他字符串形式,则可以INSERT INTO table SET telephone = '5,7,16'。将值拆分回单独的条目更难,您通常必须在程序代码中执行此操作。