我有一个具有以下结构的 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 上对同一个表进行内部连接,然后以某种方式做一个group by什么的...
关于我应该如何进行的任何线索或想法?