MySQL remove all whitespaces from the entire column

Is there a way to remove all whitespaces from a specific column for all values?

203905 次浏览

取代 all spaces:

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

删除所有 tabs字符:

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

To remove all new line characters :

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

如果你想删除所有类型的空格,你可以组合所有这些函数:

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

工作查询:

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

While this doesn't :

SELECT trim(col_name) FROM table_name;

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

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

只需使用下面的 sql,就可以完成:

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

你可以在这里测试这个样本: W3学校

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

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

注意: 有两种类型的空白,那些来自空格栏和那些来自标签按钮,你需要做一个替换都。我怀疑这就是为什么 TRIM 函数似乎并不总是起作用的原因。

所以

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

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