MySQL trim()没有删除字符串中的空格

时间:2016-01-04 22:47:06

标签: mysql

鉴于name列的价值:AL TAIRAWI TRADING ESTABLISHMENT

Update ae_companies set uniqueidentifier = CONCAT(trim(LEFT(name, 5)), '_', id, '_ae')

上面的查询产生了这个:

AL TA_6_ae

我正在寻找的是:

ALTA_6_ae

我不知道trim()为什么不在这里工作。

1 个答案:

答案 0 :(得分:3)

使用replace()代替trim()

Update ae_companies 
set uniqueidentifier = CONCAT(replace(LEFT(name, 5), ' ', ''), '_', id, '_ae')

TRIM()在您的情况下(完成您认为的工作),因为它的描述是:

  

删除前导尾随空格

当你LEFT(name, 5)生成AL TA时,所有前导空格和尾随空格都会以TRIM()方式将其删除。在你的情况下,空格字符既不是最后一个也不是第一个位置,所以这就是为什么你的结果在修剪时不会改变的原因。

您正在寻找的是REPLACE($INPUT_STRING, ' ', '')来截断输入字符串中所有出现的空格字符。