0

非常にMySQL初心者なので、明らかな質問をしている場合はご容赦ください。

私の問題は、電話番号をテキスト フィールドから整数に変換する必要があることです。テキスト フィールドは常に自由なテキストであったため、ユーザーは必要なものを入力できました。行の 90% (スペース、非アルファなど) を処理しましたが、0800 の「単語」の翻訳に行き詰まっています。つまり、0800PHONEME は 08007466363 に変換する必要があります。 0800番。

できればDBレベルでやりたい

アイデアや提案はありますか?

ありがとう

4

3 に答える 3

0

2番:

UPDATE `t_contact` SET `c_phonenumber` = REPLACE(UPPER(`c_phonenumber`),'A','2');
UPDATE `t_contact` SET `c_phonenumber` = REPLACE(UPPER(`c_phonenumber`),'B','2');
UPDATE `t_contact` SET `c_phonenumber` = REPLACE(UPPER(`c_phonenumber`),'C','2');

番号 3:

UPDATE `t_contact` SET `c_phonenumber` = REPLACE(UPPER(`c_phonenumber`),'D','3');
UPDATE `t_contact` SET `c_phonenumber` = REPLACE(UPPER(`c_phonenumber`),'E','3');
UPDATE `t_contact` SET `c_phonenumber` = REPLACE(UPPER(`c_phonenumber`),'F','3');

等々...

于 2013-02-19T23:17:46.723 に答える
0

例を完成させる機会/時間があればいいのですが、アイデアを得る必要があります:

http://sqlfiddle.com/#!2/73482/1

すべての数値に対して置換関数をチェーンし続けるだけです。

于 2013-02-19T23:00:19.790 に答える
0

REGEXP_REPLACEアルファを見つけて置き換えるなど、UDF(ユーザー定義関数)を使用するのが最善の策だと思います。

于 2013-02-19T23:06:13.337 に答える