如何在mysql中特定列的单个单元格中插入多个整数值

Posted

技术标签:

【中文标题】如何在mysql中特定列的单个单元格中插入多个整数值【英文标题】:How to insert multiple integer values in single cell of a particular column in mysql 【发布时间】:2020-11-17 23:27:06 【问题描述】:

我的表格如下

用户ID(主键)

历史(整数)

在历史单元格中,我需要在单个单元格中插入多个值,该单元格类型为整数示例 -

1 history:(1,4,6)
2 history:(2,7,9)

我还必须更新之前的值 -> history(1,4,6) after ->history(1,4,5,7)

【问题讨论】:

什么是“细胞”?这不是数据库术语。 历史的数据类型是整数。您希望如何存储字符串? 在我看来单元格表示一行的特定列 这不是一个伟大的设计。您想在列中存储多少个值?它不会很好地扩大规模。我建议您与另一个表建立 1:N 关系来存储值的历史记录。 【参考方案1】:

我需要在单个单元格中插入多个值,该单元格类型为整数示例

你不能那样做。整数值就是:存储在给定列中的单个整数值。

如果您想将多个值关联到给定的user_id,那么这是一对多的关系。您通常会将其表示为一个单独的表,每个 (user_id, history) 元组有一行,如下所示:

user_id     history
1           1
1           4
1           6
2           2
2           7
2           9

此表的主键将由两列组合而成,user_id 列是users 表的外键。

然后,您可以使用聚合查询生成逗号分隔列表(如果这是您想要的):

select user_id, group_concat(history) all_history
from user_history
group by user_id

然后您可以带上带有join 的原始表格:

select u.*, uh.all_history
from users u
inner join (
    select user_id, group_concat(history) all_history
    from user_history
    group by user_id
) uh on u.user_id = uh.user_id

【讨论】:

通过存储在另一个表中,以便在检索时我们必须加入该表,这就是您的意思吗? @SriHarshaDamarla:是的,就是这样。请参阅我的更新答案。【参考方案2】:

听起来你想要group_concat():

select userid, group_concat(history)
from t
group by userid;

【讨论】:

如何插入表格? @SriHarshaDamarla 。 . .进入 what 表?您可以使用insertcreate table as。但是,当您可以运行查询时,这似乎完全没有必要。

以上是关于如何在mysql中特定列的单个单元格中插入多个整数值的主要内容,如果未能解决你的问题,请参考以下文章

如何在 OpenOffice 中将一列单元格从一张表插入到另一张表的单个单元格中?

在 QTableView 的单个单元格中显示多个图标

如何使用 PHP 和 MYSQL 在单个单元格数据库中插入/存储多个项目

如何在dataTable的单个单元格中添加多个json值

删除单个单元格中的重复ID

如何在通过 Pandas 在 csv 中写入多个 for 循环的数据时在单个单元格中附加数据?