0

您如何使用,和在MySQL中执行以下PHP函数?UPDATESETREPLACE

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

删除多个空格

编辑问题

我的目标是从以下字符串开始

[!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 = 制表符

编辑答案

完整的答案使用UPDATE,除了 Elias Van Ootegem 的建议SETREPLACE

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
        ''
    );

那应该涵盖所有内容。如果我忘记了一个,只需添加另一个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 回答