gpt4 book ai didi

mysql - MySQL中每两行select,使用不同的列进行匹配

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

我有一个具有以下结构的 MySQL 表:

 mysql> select id,channel,Stats,Bridged from channels;
+----------+---------------------------------+---------+-------------------------------+
| id | channel | Stats | Bridged |
+----------+---------------------------------+---------+-------------------------------+
| 21523318 | SIP/5602291658-0007f140 | Up | SIP/X.Y.Z.Q-0007f13f > |
| 21523321 | SIP/X.Y.Z.Q-0007f13f | Up | SIP/5602291658-0007f140 |
| 21523322 | SIP/5154642553-0007f13a | Up | SIP/402-0007f135 |
| 21523323 | SIP/402-0007f135 | Up | SIP/5154642553-0007f13a |

查看每两条记录,它们是成对的:例如 ID 21523318 的 Channel 与下一个 ID 的 Bridged 列相同。

我的问题是:考虑到该表通常包含数千条记录,我如何才能为每两条记录选择一行?

我的意思是——一旦我有了第一行,我就可以验证“桥接”列信息作为“ channel ”存在于数据库中,以显示单行。我可以递归地执行此操作(检查每一行是否有另一个 Bridged channel ,但是对于数千个它变得非常慢并且有很多查询。我正在考虑在 channel=Bridged 上使用同一张表进行内部连接,然后以某种方式进行分组或其他操作......

关于我应该如何进行的任何线索或想法?

最佳答案

如果 channel 和桥接总是交换,这应该适合你:

select *
from channels
where id in (
select min(id)
from channels
group by least(channel, bridged), greatest(channel, bridged))

关于mysql - MySQL中每两行select,使用不同的列进行匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14322422/

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