簡體   English   中英

MySQL存儲過程和游標

[英]MySQL Stored Procedure and Cursor

我是stackoverflow的初學者,希望您能為我的問題提供解決方案,我將解釋:

我有兩個表:第一個表(表A)包含(電話號碼,持續時間),第二個表(表B)包含(internationnal_prefix,目的地,每分鍾費用和length(prefix))

因此,我需要對兩個表中的所有數據進行此更新,我將在之后說明算法,首先是更新命令:/ *我們將在表A中添加一列,包含我們的結果,我們將其命名為“結果” * /

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

這是我想對每個電話號碼執行的操作 ,我已經按前綴 表B進行排序,使表B 在頂部具有最大的前綴,以便首先檢查的是最大的代碼。

此代碼將計算VOIP的平均值,因此我們需要通過驗證電話號碼中是否包含國際前綴來檢測電話號碼中的目的地(例如,我們可以選擇0044123(每分鍾0.156歐元)和0044(0.08))每分鍾€,這就是為什么我們必須從驗證中最大的代碼開始)

每個電話號碼都必須使用表B中的所有前綴進行驗證。因此,最后,我需要您提供解決方案,因為我對該領域沒有足夠的了解...

PS:我正在使用MySQL 5.5致謝。

那么,您想使用這兩個表來計算電話的價格嗎? 一種方法是在子選擇中查找每分鍾的費用:

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”。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM