2016-08-25 100 views
4

我想清理我的号码在我的数据库:Mysql的TRIM不使用工作

update valuations set Telephone = TRIM(Telephone) where 1 = 1 

但0行影响,所有的nunmbers仍然有空间在其中。数据类型是varchar,所以我不确定为什么这不起作用 - 任何人都可以帮忙吗?

感谢

+0

的MySQL [TRIM()](http://dev.mysql.com/doc/refman/5.7/en/string-functions.html#function_trim)功能 - 删除__leading__和__trailing__空格 –

+0

你的空间是否在你的字符串的开始和结尾?如果是这样,'TRIM()'应该删除它们。如果它们处于字符串的中间,那么最好使用'REPLACE()'。 – roberto06

+2

'trim()'不会删除字符串中的空格,例如取这个字符串:'trim(“Hello World”)'this变成:'“Hello World”' – Daan

回答

2

流行你好,请使用设定的电话= REPLACE

UPDATE估值(电话, '', ''),其中1 = 1;

希望这个作品PAL

2

trim()将在串的两端仅删除那些空间。如果你想删除这些字符串内,使用replace

UPDATE valuations SET Telephone = REPLACE(Telephone, ' ', '') where 1 = 1 
1

你应该先修剪串,之后用空字符替换空间:当你需要

update valuations set Telephone = REPLACE(TRIM(Telephone), ' ', '') where 1 = 1 

TRIM功能非常有用从开始和结束字符串中删除其他空白字符,例如新行字符或TAB。

更多TRIM()功能:http://dev.mysql.com/doc/refman/5.7/en/string-functions.html#function_trim

+3

现在没有必要使用'trim' ,当你删除所有空格 –

+0

是的,但是当你有其他空白字符时,TRIM将会很有用。 – aslawin

6

正如我所说的在我的评论,我猜你的空间在您的条目中,TRIM不会有效。使用REPLACE代替:

UPDATE valuations SET Telephone = REPLACE(Telephone, ' ', '') WHERE 1 = 1;