濮阳杆衣贸易有限公司

主頁 > 知識庫 > MySQL數(shù)據(jù)中很多換行符和回車符的解決方法

MySQL數(shù)據(jù)中很多換行符和回車符的解決方法

熱門標簽:石家莊電商外呼系統(tǒng) 芒果電話機器人自動化 日照旅游地圖標注 申請外呼電話線路 廣東人工電話機器人 南通自動外呼系統(tǒng)軟件 信陽穩(wěn)定外呼系統(tǒng)運營商 百度地圖圖標標注中心 湖南人工外呼系統(tǒng)多少錢

發(fā)現(xiàn)問題

今天一大早客戶給我打電話:“小陳兒,昨晚我往數(shù)據(jù)庫導了幾十萬條數(shù)據(jù),然后在web界面很多都搜不到,你們系統(tǒng)做的啥玩意兒???這么多BUG!得啵得啵得…”(省略2000字)又習慣性的噴了一遍我們這個項目做的辣雞~~

得得得,客戶隨便噴,我就當吃了個早飯了🙂🙂🙂嗝兒~嗯,真飽;

我到公司后先測試一下客戶給我的錯誤示例(果然搜不到),然后排查一下昨天的數(shù)據(jù)是否有問題,發(fā)現(xiàn)昨天客戶用excel導入的數(shù)據(jù)中,存在很多\r\n這種換行符和回車符。

如:庫中數(shù)據(jù)為:“換行符\n換行符\n換行符”,然后在界面通過如下SQL查詢,那自然是搜不到咯!

SELECT * from `LOL` where name = '換行符換行符換行符';

換行符:CHAR(10) = "\n"

回車符: CHAR(13) = "\r"

在MySQL中,回車符、換行符都屬于char類型,放到varchar中時,在navcat等插件上是不顯示的,需要在mysql終端和navcat對比才能看出來(坑啊~)

navcat插件顯示如下:

MySQL終端顯示如下:

(回車符\r還導致數(shù)據(jù)結(jié)果直接返回了,只顯示了一部分,MySQL你讓我說你啥好😰😰)

mysql> select * from `LOL`;
+----+-------------------------------+-----------+-------+
| id | hero_title     | hero_name | price |
+----+-------------------------------+-----------+-------+
| 1 | D刀鋒之影      | 泰隆  | 6300 |
| 2 | X迅捷斥候      | 提莫  | 6300 |
| 8 | 換行符
換行符
換行符   | 換行符 | 450 |
回車符   | 回車符 | 450 |
+----+-------------------------------+-----------+-------+
4 rows in set (0.00 sec)

1、如何去掉換行符、回車符

如果條件允許,建議直接通過語句清除掉換行符和回車符,如下:

去除"hero_title"列中所有換行符 (通過以下兩種方式都可以)

-- 去除"hero_title"列中所有換行符 (通過以下兩種方式都可以)
update `LOL` set hero_title = REPLACE(hero_title, '\n', '');
update `LOL` set hero_title = REPLACE(hero_title, char(10), '');

– 去除"hero_title"列中所有回車符(通過以下兩種方式都可以)

-- 去除"hero_title"列中所有回車符
update `LOL` set hero_title = REPLACE(hero_title, '\r', '');
update `LOL` set hero_title = REPLACE(hero_title, char(13), '');

2、SELECT如何忽略"換行符、回車符"進行查詢

如果條件不允許,比如客戶“很激動”并向你吼道:不能動庫里的數(shù)據(jù)!…我笑了~

那怎么辦呢?可以通過修改SQL來過濾掉換行符、回車符,但一定程度上會影響查詢效率,而且要改很多代碼,你懂得。

銘記魯迅先生說的:哪里有壓迫,哪里就得有反抗!

示例如下:

-- 忽略掉換行符查詢
SELECT * from `LOL` where REPLACE(hero_title, char(10), '') = '換行符換行符換行符';
-- 忽略掉回車符查詢
SELECT * from `LOL` where REPLACE(hero_title, char(13), '') = '回車符回車符回車符';
-- 忽略掉換行符  回車符查詢
SELECT * from `LOL` where REPLACE(REPLACE(hero_title, char(13), ''), char(10), '') = '回車符回車符回車符';

3、經(jīng)驗總結(jié)

類似的符號一般要求入庫時就清理掉,如果必須保留也建議用其他自定義標識代替(如自創(chuàng)的唯一標識,我叫它大眼瞪小眼: o_O),后臺程序中做替換處理,免得影響到索引效率。

好了,希望這篇文章能幫到你,或許你可以mark一下,當同事遇到該問題時,甩她臉上~

到此這篇關(guān)于MySQL數(shù)據(jù)中很多換行符和回車符的解決方法的文章就介紹到這了,更多相關(guān)MySQL換行符和回車符內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • 淺談mysql數(shù)據(jù)庫中的換行符與textarea中的換行符

標簽:呼和浩特 牡丹江 沈陽 惠州 公主嶺 合肥 天津 阿里

巨人網(wǎng)絡(luò)通訊聲明:本文標題《MySQL數(shù)據(jù)中很多換行符和回車符的解決方法》,本文關(guān)鍵詞  MySQL,數(shù)據(jù),中,很多,換行符,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《MySQL數(shù)據(jù)中很多換行符和回車符的解決方法》相關(guān)的同類信息!
  • 本頁收集關(guān)于MySQL數(shù)據(jù)中很多換行符和回車符的解決方法的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    云龙县| 永顺县| 晋城| 大石桥市| 巢湖市| 莱西市| 稷山县| 房山区| 凯里市| 日照市| 龙海市| 宜兴市| 全州县| 龙南县| 于田县| 泉州市| 牟定县| 大兴区| 嘉定区| 新安县| 扶沟县| 营口市| 红桥区| 柯坪县| 娱乐| 华坪县| 岑溪市| 南通市| 榆社县| 盘山县| 攀枝花市| 淳安县| 雷山县| 宁安市| 墨江| 盐津县| 余姚市| 波密县| 同心县| 商洛市| 特克斯县|