1.情景展示
在mysql數據庫中,經常會遇到這樣情況:
某表現有數據,經常會存在:回車符、換行符、制表符或空格,如何把這些多余的符號從數據當中剔除出去?
2.具體分析
通過char()和replace()函數來完成;
char(十進制數字):可以得到對應的ASCII字符;
replace():可以完成字符替換。
3.解決方案
CHAR(9),對應的是:水平制表符;
CHAR(10),對應的是:換行符;
CHAR(13),對應的是:回車符;
CHAR(32),對應的是:空格。
一起先來看看,這些字符長啥樣?

看不出來,我們將其復制到notpad++當中;

並通過設置,將這些對應的符號顯示出來:

相對應的:
第一行是水平制表符;第二行是換行符;第三行是回車符;第三行選中的那個是空格符。
第一步:查詢包含這些字符的數據;
SELECT
ORGCODE
FROM
base_org_info
WHERE
LOCATE( CHAR ( 9 ), ORGCODE )
OR LOCATE( CHAR ( 10 ), ORGCODE )
OR LOCATE( CHAR ( 13 ), ORGCODE )
OR LOCATE( CHAR ( 32 ), ORGCODE );
說明:如果嫌麻煩,可以直接進行第二步。
第二步:更新這些數據。
將這些數據的上述特殊空白字符替換成空字符。
UPDATE base_org_info
SET ORGCODE = REPLACE(REPLACE(REPLACE(REPLACE(ORGCODE,CHAR(13),''),CHAR(10),''),CHAR(9),''),CHAR(32),'');
如果表的數據量不大的話,可以直接替換;
否則的話,還是需要我們加上限制條件的。
