【发布时间】:2010-09-15 09:40:35
【问题描述】:
如何在一个属性中存储多个值。 例如: 栏目名称:电话 我想在一行的一列(电话)中存储 5,7 和 16 这三个不同的值。
【问题讨论】:
标签: mysql database-design types data-modeling
如何在一个属性中存储多个值。 例如: 栏目名称:电话 我想在一行的一列(电话)中存储 5,7 和 16 这三个不同的值。
【问题讨论】:
标签: mysql database-design types data-modeling
你不应该那样做。这表明数据库设计不正确。
但如果您必须在不改变数据库设计的情况下这样做。您可以使用特殊的胶水连接所有电话号码,确保不会成为任何电话号码的一部分,例如%。因此 5、7 和 16 将全部存储在 varchar 类型的一列中,为 5%7%16,稍后您的应用程序并根据需要将它们拆分。
【讨论】:
您可以用“,”或“;”分隔不同的值吗? 查询内容时,只需在分隔符上拆分字符串即可....
否则我认为这是不可能的。
【讨论】:
例如,用逗号分隔它们?请注意,不建议这样做,如果同一列需要多个值,则需要多行,或者最好是一个辅助表来保存所有电话号码。
但是,如果该列是 VARCHAR 或其他字符串形式,您可以只执行 INSERT INTO table SET telephone = '5,7,16'。将值拆分回单独的条目更难,您通常必须在程序代码中这样做。
【讨论】: