gpt4 book ai didi

mysql - 选择具有相同列值(1 个或多个)的行的 "group"

转载 作者:太空宇宙 更新时间:2023-11-03 11:45:03 25 4
gpt4 key购买 nike

假设我有这张表:

id      | column1 | column2
--------+---------+----------
1 | 3 | 1
2 | 5 | 1
3 | 6 | 2
4 | 5 | 2
5 | 1 | 3
6 | 7 | 3
7 | 7 | 3
8 | 2 | 3
9 | 5 | 3
10 | 7 | 4

(column2为了方便排序,实际表格中的行不是这个顺序)

如何选择第 2 列中具有相同值的“组”行?它不一定返回超过 1。随机会很好,但如果我也可以按其他列对它进行排序,我也更愿意。

如果我没有说清楚,这就是我希望它返回的内容:

id      | column1 | column2
--------+---------+----------
1 | 3 | 1
2 | 5 | 1

id      | column1 | column2
--------+---------+----------
3 | 6 | 2
4 | 5 | 2

id      | column1 | column2
--------+---------+----------
10 | 7 | 4

或者...(等等)

所以首先它应该返回第 2 列中值为 1 的所有行,然后如果我删除它们它应该返回第 2 列中值为 2 的所有行,等等。

请注意,为了简单起见,column2 是整数,而且我不想提供特定值,column2 可以有任何值。我能想到的唯一方法是使用两个查询:

首先 SELECT column2 FROM test_table GROUP BY column2,获取所有不同的 column2 值,然后为每个 column2 值执行 SELECT * FROM test_table WHERE column2=value

是否有更高效/更短/单一的查询方式来实现相同的结果?

最佳答案

如果我没有正确理解你的问题,这里有一个选项,使用带 min 的子查询:

select t.*
from test_table t join (
select min(column2) column2
from test_table
) t2 on t.column2 = t2.column2

关于mysql - 选择具有相同列值(1 个或多个)的行的 "group",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39379893/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com