【发布时间】:2017-04-01 01:37:41
【问题描述】:
假设我有 10 行,其中 5 行具有相同的 id,另外 5 行具有另一个相同的 id。
id ---------name
55 -------- name1
55 -------- name2
55 -------- name3
66 -------- name6
66 -------- name7
55 -------- name4
66 -------- name8
66 -------- name9
66 -------- name10
55 -------- name5
我想选择这 10 行并按相同的 ID 分组。所以我将有 2 个组,我想打印第 1 组的所有数据,然后打印第 2 组的所有数据。
结果是这样的:
-
group1(name1,name2,name3,name4,name5)
-
group2(name6,name7,name8,name9,name10)
这怎么可能?
提前谢谢...
【问题讨论】:
-
首先:如果多个数据集有相同的ID,你的数据库有问题。第二:到目前为止,您自己尝试过什么?第三:你查过MySQL manual吗?
-
@FranzGleichmann 对信息不足的大胆断言
-
@Strawberry 具有重复值的实际主键列肯定 是一个很大的错误,任何简单命名为
id的外键而不是,例如tablename_id是名字很糟糕充其量。所以,无论哪种方式,都有些不对劲。 -
@FranzGleichmann 具有重复值的实际主键列在术语上是矛盾的。我同意命名政策 - 但是(某些警告除外)在 (id,name) 上形成的 PK 并没有太大问题。