0

我是stackoverflow的初学者,我希望你能给我解决我的问题,我会解释:

我有两个表:第一个表(表 A)包含(电话号码,持续时间),第二个表(表 B)包含(国际前缀、目的地、每分钟费用和长度(前缀))

所以我需要做的是对两个表中的所有数据进行更新,之后我将解释算法,首先这是更新命令: /* 我们将在表 A 中添加一个列包含我们的结果,我们将其命名为“结果” */

 UPDATE table Table A SET result  = CASE WHEN left (phone_number,length(prefix)) = prefix_inter 
  THEN  (duration * fee per minute)

这就是我想要为每个电话号码做的事情,我已经按前缀 对表 B 进行了排序,以便在顶部具有最大的前缀,以便第一个检查的是最大的代码。

此代码将计算 VOIP 的连接,因此我们需要通过验证电话号码是否包含准确的国际前缀来检测电话号码的目的地(例如,我们可以有 0044123 和 0.156 欧元/分钟,0044 用于 0.08 €每分钟,这就是为什么我们必须从验证中最大的代码开始)

每个电话号码都必须使用表 B 中的所有前缀进行验证 所以最后,我需要你给我解决方案,因为我在这个领域没有足够的知识......

PS:我正在使用 MySQL 5.5 感谢和问候。

4

1 回答 1

1

那么,你想用这两张表来计算一个电话的价格吗?一种方法是在子选择中查找每分钟的费用:

UPDATE A SET result = (select A.duration*B.fee_per_minute from B where
    locate(B.prefix, A.phone_number) = 1 order by length(prefix) desc limit 1);

如果 B 已经按前缀长度排序,则可以删除“order by”。

于 2012-08-03T08:02:25.233 回答