【问题标题】:MySQL remove all whitespaces from the entire columnMySQL从整个列中删除所有空格
【发布时间】:2011-11-10 22:40:03
【问题描述】:

有没有办法从所有值的特定列中删除所有空格?

【问题讨论】:

  • 何时必须删除空格?通过更新或选择?不清楚!

标签: mysql


【解决方案1】:

注意:有两种类型的空格,来自空格键的空格和来自 tab 按钮的空格,您需要对两者进行替换。我怀疑这就是 TRIM 功能似乎并不总是有效的原因。

所以

replace(replace(<field_name>,' ',''),'  ','')

(可能有更多类型的空白,但这是我发现的两种)

【讨论】:

    【解决方案2】:

    只要使用下面的sql,就大功告成了:

    SELECT replace(CustomerName,' ', '') FROM Customers;

    你可以在这里测试这个样本:W3School

    【讨论】:

    • 问题是如何“从所有值的特定列中删除所有空格”,而您的答案没有,更不用说五月的答案更好了。
    【解决方案3】:

    替换all spaces

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

    删除所有tabs 字符:

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

    删除所有new line 字符:

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

    http://dev.mysql.com/doc/refman/5.0/en/string-functions.html#function_replace

    要删除列的first and last space(s)

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

    http://dev.mysql.com/doc/refman/5.0/en/string-functions.html#function_trim

    【讨论】:

    • TRIM 只删除字符串开头和结尾的空格。
    • 这行得通 :) 虽然它显然只删除空格而不是制表符或换行符。不清楚 OP 到底想要什么。
    • 如果你想删除标签,只需这样做 UPDATE table SET col_name = REPLACE( col_name , '\t' , '' )
    • 删除新行:UPDATE table set col_name = REPLACE( col_name , '\r' , '' );
    • 双倍或三倍的空间怎么样?
    【解决方案4】:

    因为问题是如何替换所有空格

    UPDATE `table` 
    SET `col_name` = REPLACE
    (REPLACE(REPLACE(`col_name`, ' ', ''), '\t', ''), '\n', '');
    

    【讨论】:

    • 这对我有用。它完全消除了各种空白。
    【解决方案5】:

    使用以下查询,您可以删除 MySQL 中的前导和尾随空格。

    UPDATE `table_name`
    SET `col_name` = TRIM(`col_name`);
    

    【讨论】:

      【解决方案6】:

      工作查询:

      SELECT replace(col_name , ' ','') FROM table_name;

      虽然不是这样:

      SELECT trim(col_name) FROM table_name;

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2022-06-16
        • 2011-11-29
        • 2013-09-19
        • 2011-10-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多