我在MySQL表的字段中有一个字符串。
它是VARCHAR,表格编码是utf8。
该字段的内容为one two three
如果我运行select * from table where content like '%one two%';
,则会返回该行
但是,如果我运行update table set content = REPLACE(content, " ", "+;;");
,则结果为one two+;;three
。
那么,第一个“空白”角色是什么?
我正在使用这个表和Ruby on Rails应用程序。 Ruby也不认为它是一个空格字符。 (例如,如果我将字符串拆分为“”,则不会在第一个空格上拆分)
知道发生了什么事吗?
感谢。
答案 0 :(得分:2)
它可能是一个非中断空格字符(UTF8中的2个字节:0xC2 0xA0)。这不是空格,将它与空格进行比较会产生错误。
您可以像这样更新表格:
UPDATE table SET column = REPLACE(column, ' ', ' ');
请注意,您应确保第一个“空格”实际上是您要替换的字符。