5

1 つのフィールドが phone_no である 90,000 を超えるレコードを含むテーブルがあります。

phone_no 列の次の特殊文字を置き換えたいと思います。

"(",")","/"," ","-","+"

次のクエリは、一度に 1 文字だけ更新します。

//SQL Query i have used to update 
UPDATE notary_info SET mobile_phone = REPLACE(mobile_phone, '/', '')

上記のすべての特殊文字を1つのmysqlクエリで置き換えることは可能ですか?

4

7 に答える 7

8

次のようなネストされたREPLACE()関数を試してください。

UPDATE notary_info SET mobile_phone = 
    REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(mobile_phone, '/', ''),'(',''),')',''),' ',''),'+',''),'-','');
于 2013-10-04T03:41:57.043 に答える
4

残念ながら、MySQL では複数の文字を 1 つのステートメントで同時に置き換えることはできません。REPLACE呼び出しを連鎖させることができます:

REPLACE(REPLACE(mobile_phone, "/", ""), "(", "")

あなたはそれを避けようとしているように聞こえますが。その場合、スクリプト言語を使用して、クエリの各結果を確認し、置換自体を行う方がよい場合があります。多くの言語では、これを簡単に行うことができます。たとえば、PHP では次のようになります。

strtr($row['mobile_phone'], array("()/ -+" => ""))
于 2013-10-04T03:44:06.473 に答える
1

mysql で関数を作成できる場合:

DELIMITER $$
CREATE FUNCTION `replaceEx`(in_value varchar(4000), chars varchar(100), replace_char varchar(1)) RETURNS varchar(4000)
BEGIN
    DECLARE res varchar(4000);
    declare count int;
    set res = in_value;
    set count = char_length(chars);
    WHILE (count > 0) DO
      set res = replace(res,SUBSTRING(chars, count, 1),replace_char);
      set count = count - 1;
    END WHILE;
    RETURN res;
END$$
DELIMITER ;

使用法: select replaceEx('mooxmyoolzand','xyz','');返品します"moomooland"

これが他の誰かに役立つことを願っています

于 2015-06-10T18:27:07.260 に答える
1
UPDATE notary_info SET mobile_phone = 
REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(mobile_phone, '/', ''),'(',''),')',''),' ',''),'+',''),'-','');

サンプルフィドル

于 2013-10-04T03:40:43.963 に答える
0

REPLACE呼び出しをチェーンする必要があります。例えば:

UPDATE notary_info SET mobile_phone = REPLACE(REPLACE(mobile_phone, '/', ''), '+')
于 2013-10-04T03:40:55.960 に答える
-1

以下の文字を置き換えます

   ~ ! @ # $ % ^ & * ( ) _ +
    ` - = 
    { } |
    [ ] \
    : " 
    ; '

    < > ?
    , . 

このSQLで

note_original としてメモを選択し、

REPLACE(
    REPLACE(
        REPLACE(
            REPLACE(
                REPLACE(
                    REPLACE(
                        REPLACE(
                            REPLACE(
                                REPLACE(
                                    REPLACE(
                                        REPLACE(
                                            REPLACE(
                                                REPLACE(
                                                    REPLACE(
                                                        REPLACE(
                                                            REPLACE(
                                                                REPLACE(
                                                                    REPLACE(
                                                                        REPLACE(
                                                                            REPLACE(
                                                                                REPLACE(
                                                                                    REPLACE(
                                                                                        REPLACE(
                                                                                            REPLACE(
                                                                                                REPLACE(
                                                                                                    REPLACE(
                                                                REPLACE(
                                                                    REPLACE(
                                                                        REPLACE(
                                                                            REPLACE(
                                                                                REPLACE(
                                                                                    REPLACE(
                                                                                        REPLACE(note, '\"', ''),
                                                                                    '.', ''),
                                                                                '?', ''),
                                                                            '`', ''),
                                                                        '<', ''),
                                                                    '=', ''),
                                                                '{', ''),
                                                                                                    '}', ''),
                                                                                                '[', ''),
                                                                                            ']', ''),
                                                                                        '|', ''),
                                                                                    '\'', ''),
                                                                                ':', ''),
                                                                            ';', ''),
                                                                        '~', ''),
                                                                    '!', ''),
                                                                '@', ''),
                                                            '#', ''),
                                                        '$', ''),
                                                    '%', ''),
                                                '^', ''),
                                            '&', ''),
                                        '*', ''),
                                    '_', ''),
                                '+', ''),
                            ',', ''),
                        '/', ''),
                    '(', ''),
                ')', ''),
            '-', ''),
        '>', ''),
    ' ', '-'),
'--', '-') as note_changed FROM invheader
于 2015-02-11T11:03:29.413 に答える