0

、およびを使用して、 MySQLで次のPHP関数を実行するにはどうすればよいですか?UPDATESETREPLACE

preg_replace('/\s+/', ' ', $string);

from複数の空白を削除

質問を編集

私の目的は、次の文字列から行くことです

[!DOCTYPE html]
[!--[if IE 8]][html class="no-js lt-ie9" lang="es" ][![endif]--]
[!--[if gt IE 8]][!--] [html class="no-js" lang="es" ] [!--[![endif]--]
[html lang="es-ES" prefix="og: http://ogp.me/ns#"]
[head]

上記へ

[!DOCTYPE html][!--[if IE 8]][html class="no-js lt-ie9" lang="es" ][![endif]--]
[!--[if gt IE 8]][!--][html class="no-js" lang="es" ][!--[![endif]--][html lang="es-ES" prefix="og: http://ogp.me/ns#"][head]

\ r \n \t

\n = 改行 \r = 改行 \t = タブ

回答を編集

を使用した完全な回答UPDATESETおよびREPLACEElias Van Ootegem の提案に加えて

UPDATE tab
SET col = REPLACE(
        REPLACE(
            REPLACE(
                REPLACE(col, '~', ''), 
                '\t', '' -- replace tabs
            ),
            '\n','' -- replace *NIX line-feeds
        ),
        '\r', -- replace DOS line-feeds
        ''
    )
4

2 に答える 2

3

mysql の任意の文字列からすべての空白文字を置き換えるにはREPLACE、数回呼び出す必要があります。

SELECT
    REPLACE(
        REPLACE(
            REPLACE(
                REPLACE(fieldName, ' ', ''), -- replace spaces
                '\t', '' -- replace tabs
            ),
            '\n','' -- replace *NIX line-feeds
        ),
        '\r', -- replace DOS line-feeds
        ''
    );

それはそれらすべてをカバーするはずです。1 つを忘れた場合は、別REPLACE( /*replace calls here*/, '~', '')の を追加して、それをリストに追加します。
ただし、MySQL はテキストの処理が得意ではないため、何をしようとしても少しぎこちなく感じるでしょう。

于 2013-09-30T13:50:38.997 に答える
0

トリムと置換機能を試すことができます

UPDATE `table` SET `col_name` = TRIM( `col_name` )

UPDATE `table` SET `col_name` = REPLACE( `col_name` , ' ' , '' )

問題が解決することを願っています

于 2013-09-30T13:12:50.143 に答える