MySQL通过技巧来排除耦合

时间:2017-11-09 18:29:05

标签: mysql

我在db中有这些表

电话呼叫( 来电,叫,日期,时间,.......,重量)

TELEPHONE_NUMBERS (号码,.......)

我需要一个查询,我可以选择两个号码之间的所有单个电话。 到目前为止,我已经选择了这些数字并按来电者,来电者分组了

问题在于,这不会消除重复,例如

A - >乙

和B - > A被认为是不同的

通常我会通过使用像

这样的东西来逃避这种耦合

呼叫者呼叫< 0

这只会让我看到两个数字之间的独特通信。但我的电话号码是varchar字段。

我想把它们转换成INT,但这可能太重了。任何更有效的想法?

另外,我有兴趣保持每个电话的最大重量值。

为您提供完整的示例

数字69782调用69783(69782 - > 69783),此调用权重为0.8 然后相同的数字再次通信(69783-> 69782),权重为0.5

所以我想选择它们之间所有唯一的通信记录(我不关心号码是呼叫者还是叫我只是想看到他们的连接)和最大权重!

提前致谢

1 个答案:

答案 0 :(得分:1)

在MySQL中,您可以在数字上下文中使用varchar字段,所以

HAVING caller-called<0
除非您在此字段中包含非数字字符,否则

将起作用。