您好,登錄后才能下訂單哦!
MySQL數據中解決多換行符和回車符的方法?針對這個問題,這篇文章詳細介紹了相對應的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。
SELECT * from `LOL` where name = '換行符換行符換行符';
換行符:CHAR(10) = "\n"
回車符: CHAR(13) = "\r"
在MySQL中,回車符、換行符都屬于char類型,放到varchar中時,在navcat等插件上是不顯示的,需要在mysql終端和navcat對比才能看出來(坑啊~)
navcat插件顯示如下:
MySQL終端顯示如下:
(回車符\r還導致數據結果直接返回了,只顯示了一部分,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)
如果條件允許,建議直接通過語句清除掉換行符和回車符,如下:
去除"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), '');
如果條件不允許,比如客戶“很激動”并向你吼道:不能動庫里的數據!…我笑了~
那怎么辦呢?可以通過修改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), '') = '回車符回車符回車符';
類似的符號一般要求入庫時就清理掉,如果必須保留也建議用其他自定義標識代替(如自創的唯一標識,我叫它大眼瞪小眼: o_O),后臺程序中做替換處理,免得影響到索引效率。
關于MySQL數據中解決多換行符和回車符的方法問題的解答就分享到這里了,希望以上內容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關注億速云行業資訊頻道了解更多相關知識。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。