如何在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 表?您可以使用insert
或create table as
。但是,当您可以运行查询时,这似乎完全没有必要。以上是关于如何在mysql中特定列的单个单元格中插入多个整数值的主要内容,如果未能解决你的问题,请参考以下文章
如何在 OpenOffice 中将一列单元格从一张表插入到另一张表的单个单元格中?