我有一个存储 ID 列表的列。如何实现它?我正在考虑将它存储为逗号分隔值,它的数据类型为 varchar。但我读到这不是一个好的过程。我不会能够在不获取整个数据的情况下对其执行查询。我可能需要对 ID 列表执行查询。对此有什么好的编程解决方案?
最佳答案
您需要一个包含 2 列的单独表格 - ID 和 FOREIGN_ID。您将为每个原始 ID 插入不同的行,并将原始表的主键指定为新表中 FOREIGN_ID 的值。这个新表的主键将是其 2 列的组合。 例如,如果您的原始表是
+-------------+-------+---------+
| Primary_Key | ..... | ID_list |
+-------------+-------+---------+
| 7 | ..... | 3,9,4 |
+-------------+-------+---------+
| 9 | .... | 5,1 |
+-------------+-------+---------+
你的新表看起来像这样
+-------------+-------+ +----+------------+
| Primary_Key | ..... | | ID | Foreign_ID |
+-------------+-------+ +----+------------+
| 7 | ..... | | 3 | 7 |
+-------------+-------+ +----+------------+
| 9 | .... | | 9 | 7 |
+-------------+-------+ +----+------------+
| 4 | 7 |
+----+------------+
| 5 | 9 |
+----+------------+
| 1 | 9 |
+----+------------+
关于mysql - 在 SQL 列中存储多个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38713414/