我希望你能再次幫助我,謝謝已經指出我正確的方向,爲德國的新IBAN創建校驗碼。我現在試圖用新計算的BIC和IBAN更新我們的會員數據庫,但似乎在MariaDB MySQL數據庫上的UPDATE語句有問題,儘管我認爲我的語法正確。MariaDB更新錯誤內部加入並選擇
我所要做的就是在SELECT語句的表「mitglieder」中設置兩個字段「konto_bic」和「konto_iban」,該語句創建一個名爲b的臨時表,其中列「id」,「bic」和「IBAN」。這兩個表中的「id」是相同的。
這是我第一次嘗試:
update a
set a.`konto_bic` = b.`BIC`, a.`konto_iban` = b.`IBAN`
from `mitglieder` a
INNER JOIN (SELECT m.`id`, m.`nachname`, m.`vorname`, m.`konto_bank`, m.`konto_blz`, m.`konto_nummer`, k.`bic` AS 'BIC', CONCAT('DE',LPAD(98-MOD(CONVERT(CONCAT(m.`konto_blz`,LPAD(m.`konto_nummer`,10,'0'),'1314','00'), decimal(24)),97),2,'0'),m.`konto_blz`,LPAD(m.`konto_nummer`,10,'0')) AS 'IBAN'
FROM `mitglieder` m
LEFT JOIN `konvert_bic_blz` k
ON m.`konto_blz` = k.`blz`
ORDER BY m.`nachname`, m.`vorname`) b
ON a.`id` = b.`id`
然而,由此產生的錯誤,我想這不是:
update `mitglieder` a
set a.`konto_bic` = b.`bic`, a.`konto_iban` = b.`iban`
FROM (SELECT m.`id` as 'id', k.`bic` as 'bic', CONCAT('DE',LPAD(98-MOD(CONVERT(CONCAT(m.`konto_blz`,LPAD(m.`konto_nummer`,10,'0'),'1314','00'), decimal(24)),97),2,'0'),m.`konto_blz`,LPAD(m.`konto_nummer`,10,'0')) AS 'iban'
FROM `mitglieder` m
LEFT JOIN `konvert_bic_blz` k
ON m.`konto_blz` = k.`blz`) b
WHERE a.`id` = b.`id`
這也沒有得到我任何進一步的(從DB錯誤)。
任何人都可以看到我的語法錯誤可能是什麼? 預先感謝您的幫助
斯蒂芬
你能告訴我們錯誤嗎? –