gpt4 book ai didi

mysql - MySQL : order on field A plus duplicate-status from field B 中的奇怪顺序

转载 作者:行者123 更新时间:2023-11-29 07:31:32 25 4
gpt4 key购买 nike

我需要一个非常奇怪的 ORDER BY。假设我有一张像这样的 table :

pkey   id2
1 8
2 3
3 12
4 8
5 7
6 8
7 3
8 1

我需要按以下顺序选择:遵循 pkey EXCEPT 当 id2 有重复时。然后先做重复的。

所以 ORDER BY 应该给出以下结果:

pkey   id2
1 8
4 8
6 8
2 3
7 3
3 12
5 7
8 1

我不知道从哪里开始。通过...分组?子查询?有人有什么想法吗?或者我应该去 php 吗?我更喜欢在 MySQL 中进行。

最佳答案

在我的简洁提示之后,Roemer 想出了这个解决方案:

SELECT a.* 
FROM table a
JOIN
(SELECT id2, MIN(pkey) as minId FROM table b GROUP BY id2) b
USING (id2)
ORDER BY minId, pkey, id

它使用聚合子查询为每个 id2 查找第一个 pkey,并在外部查询中使用这些 pkey 值来控制排序。

关于mysql - MySQL : order on field A plus duplicate-status from field B 中的奇怪顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51030223/

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