MySQL从整个列中删除所有空格

Posted

技术标签:

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

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

【问题讨论】:

何时必须删除空格?通过更新或选择?不清楚! 【参考方案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;

【讨论】:

以上是关于MySQL从整个列中删除所有空格的主要内容,如果未能解决你的问题,请参考以下文章

如何一次从熊猫的所有列中删除逗号

如何从mysql列中存在的所有行中删除重复值[duplicate]

如何删除 Spark 表列中的空格(Pyspark)

在 SQL Server 的列中删除尾随空格和更新

从excel vba的列中的所有单元格中删除不需要的字符

如何递归删除所有文件的尾随空格?