Mysql TRIM() 不工作
Mysql TRIM() not working
我不确定为什么 TRIM()
或 RTRIM()
不适合我。
SELECT TRIM('YV4.3x2.8SA-2 ');
返回 'YV4.3x2.8SA-2 '
。
我无法删除所有 space,因为字符串之间可能包含 space。
试试这个 SELECT TRIM(BOTH ' ' FROM 'YV4.3x2.8SA-2 ');
所以,that last character is 0xC2A0
, not 0x20
(space). That is UTF-8 encoding for Unicode code point U+00A0, also known as a non-breaking space。
要使用 TRIM()
删除这些,请为 remstr
传递 convert(0xC2A0 using utf8mb4)
:
select TRIM(convert(0xC2A0 using utf8mb4) FROM 'YV4.3x2.8SA-2 ');
如果您可能混合使用这些字符和空格,删除两者的最简单方法是首先将 NBSP 替换为常规空格,然后将结果传递给 TRIM()
:
select TRIM(REPLACE('YV4.3x2.8SA-2 ', convert(0xC2A0 using utf8mb4), ' '));
(SQL Fiddle demo, 混合空格)
我不确定为什么 TRIM()
或 RTRIM()
不适合我。
SELECT TRIM('YV4.3x2.8SA-2 ');
返回 'YV4.3x2.8SA-2 '
。
我无法删除所有 space,因为字符串之间可能包含 space。
试试这个 SELECT TRIM(BOTH ' ' FROM 'YV4.3x2.8SA-2 ');
所以,that last character is 0xC2A0
, not 0x20
(space). That is UTF-8 encoding for Unicode code point U+00A0, also known as a non-breaking space。
要使用 TRIM()
删除这些,请为 remstr
传递 convert(0xC2A0 using utf8mb4)
:
select TRIM(convert(0xC2A0 using utf8mb4) FROM 'YV4.3x2.8SA-2 ');
如果您可能混合使用这些字符和空格,删除两者的最简单方法是首先将 NBSP 替换为常规空格,然后将结果传递给 TRIM()
:
select TRIM(REPLACE('YV4.3x2.8SA-2 ', convert(0xC2A0 using utf8mb4), ' '));
(SQL Fiddle demo, 混合空格)