mysql - 在 SQL 列中存储多个值

标签 mysql

我有一个存储 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/

相关文章:

mysql - 使用循环和游标对 MySQL 表中的所有行进行编号

php - Mysql从特定值开始选择和获取表数据

mysql - 检索按年份分组的财政年度数据的 SQL 查询

mysql - 如何在连接和排序依据中更新 sql

python - 为什么填充我的表需要这么长时间?

php - 所有列到行mysql

MySQL计算派生属性

php mySql 更新集将小数向下舍入

mysql - HAProxy 从 DOWN 到 UP 时使用服务器

python - Mysql 与 Django 设置