今天在一个系统上除错, 发现用以下 SQL 指令找不到资料:
|
1 |
select * from `table_name` where `name` like 'ABC' |
要用以下 SQL 指令才可以找到:
|
1 |
select * from `table_name` where `name` like '%ABC%' |
用 phpMyAdmin 检查那些资料好像没问题, 再细心找才发现有些资料的字段结尾有 “\n” 或 “\r”, 出现这个问题的原因大栏是在插入资料时没有删除掉 “\n” 这类字符, 插入的部份很容易解决, 再来要将原有的资料内的 “\n” 及 “\r” 删除。
在处理前先将资料表备份, 然后可以用以下 SQL 指令将所有 “\n” 及 “\r” 空白字符删除, 以下例子会将 “table_name” 资料表内的 “name” 字段的 “\n” 及 “\r” 删除:
|
1 |
UPDATE `table_name` SET `name` = REPLACE(REPLACE(`name`, '\r', ''), '\n', ''); |
如果只将删除 “\n” 或 “\r” 其中一个字符, 可以改成这样:
删除 “\n”
|
1 |
UPDATE `table_name` SET `name` = REPLACE(`name`, '\n', ''); |
删除 “\r”
|
1 |
UPDATE `table_name` SET `name` = REPLACE(`name`, '\r', ''); |