最近変更された部屋番号と一致するように、コンピューターのホスト名のコレクションを更新しようとしています。データベース内のホスト名は FL-itf2106a のような形式で、2106 が古い部屋番号です。同じ行に古い部屋番号と新しい部屋番号がある別のテーブルに既にリストがあります。ホスト名の文字列からすべての非数値を取り除き、それを更新テーブルに結合しようとしましたが、失敗しました。
UPDATE computers c
INNER JOIN updates u
ON u.old = (
SELECT NumericOnly(c.hostname)
WHERE hostname
LIKE "%FC%"
)
SET c.hostname = CONCAT('classf', u.new);
NumericOnly は、文字列から数値以外のすべての文字を削除するユーザー関数です。
ホスト名の列をclassf +新しい部屋番号に等しく設定しようとしています。