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从整个列中删除所有空格的主要内容,如果未能解决你的问题,请参考以下文章