PHPでデータをいじる代わりに、このデータベーストランザクションを1つのmysqlクエリで実行しようとしています。問題は、私がmysqlが得意ではないことです。先頭のゼロを削除し、数値に 44 を追加してデータを標準化し、いくつかの列を更新しようとしています。ただし、CONCAT および TRIM のデータをそのままにしておくことはできます。
これは私がこれまでに持っているものです...
UPDATE calldata AS gcd
JOIN tarif AS ap
ON CONCAT('44', TRIM(LEADING 0 FROM `gcd.n_dialled`))
LIKE CONCAT(ap.prefix, '%')
SET gcd.prefix=ap.prefix, gcd.dest1=ap.dest
WHERE gcd.countrycode='UKN'
AND gcd.citycode=''
内部サーバー エラーだけで、SQL エラーは発生しません。
http://sqlfiddle.com/#!2/df7913/ sqlfiddle