老熟女激烈的高潮_日韩一级黄色录像_亚洲1区2区3区视频_精品少妇一区二区三区在线播放_国产欧美日产久久_午夜福利精品导航凹凸

重慶分公司,新征程啟航

為企業提供網站建設、域名注冊、服務器等服務

如何進行MYSQL特殊字符的處理

這篇文章給大家介紹如何進行MySQL特殊字符的處理,內容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。

創新互聯秉承實現全網價值營銷的理念,以專業定制企業官網,成都網站制作、成都網站設計,微信小程序開發,網頁設計制作,手機網站制作成都全網營銷推廣幫助傳統企業實現“互聯網+”轉型升級專業定制企業官網,公司注重人才、技術和管理,匯聚了一批優秀的互聯網技術人才,對客戶都以感恩的心態奉獻自己的專業和所長。

單引號,以及行尾的斜杠引起的困惑:

這一次的問題,我們直接從實際的工作中說起:

工作內容簡介: 有一批用戶ID存在文件里,需要從數據庫里刪除?

做這個事情,可能有很多的方法:
1, 把ID導入到數據庫中,用SQL直接做表關聯去刪除 ;
2, 用SHELL(或其他語言)寫個小程序,根據文件里的ID做一個FOR 循環,然后在MYSQL中去刪除 ;
3, 用sed直接把ID轉成delete語句,完了直接運行即可;

[@more@]

由于數據量較大(1.6億),顯然,我會用偷懶以及簡單的方法3 :
----------------------------------------------
[root@im_ctuallot1 tmp]# cat loginid.txt
xouqun76818
ogku15mtb7c
jinlongkaikai@163.com
曾樸紹283902
輕舞飛揚061129付了

[root@im_ctuallot1 tmp]# sed  -e "s/^/delete from ctulog.db_allot_center_64 where long_id='/g" -e "s/$/';/g"  loginid.txt > loginid.sql
[root@im_ctuallot1 tmp]# cat loginid.sql
delete from ctulog.db_allot_center_64 where long_id='xouqun76818';
delete from ctulog.db_allot_center_64 where long_id='ogku15mtb7c';
delete from ctulog.db_allot_center_64 where long_id='jinlongkaikai@163.com';
delete from ctulog.db_allot_center_64 where long_id='曾樸紹283902';
delete from ctulog.db_allot_center_64 where long_id='輕舞飛揚061129付了';

mysql -uroot -h227.0.0.1 --default-character-set=latin1  --force ctulogdb < loginid.sql

--force 是防止某個SQL出現錯誤,而導致整個任務終止;
---------------------------------------------

搞定。
這看似非常簡單的方法,也暴露出很多的問題,結果1.6行數據只成功刪除了3300W,任務失敗;
其實是我把這個任務想得太簡單了: 在用戶ID中存在任何可能的字符 ,如:
bao'pijkl
tingting831118

注意,在用戶ID中有" ' ", 在行末尾有:"  ";
我們把這樣的語句滲雜到其他ID中,我們看會有怎么的效果;

[root@im_ctuallot1 tmp]# cat loginid.txt
xouqun76818
bao'pijkl
ogku15mtb7c
jinlongkaikai@163.com
曾樸紹283902
tingting831118
輕舞飛揚061129付了

[root@im_ctuallot1 tmp]# sed  -e "s/^/delete from ctulog.db_allot_center_64 where long_id='/g" -e "s/$/';/g"  loginid.txt > loginid.sql
[root@im_ctuallot1 tmp]# cat loginid.sql
delete from ctulog.db_allot_center_64 where long_id='xouqun76818';
delete from ctulog.db_allot_center_64 where long_id='bao'pijkl';
delete from ctulog.db_allot_center_64 where long_id='ogku15mtb7c';
delete from ctulog.db_allot_center_64 where long_id='jinlongkaikai@163.com';
delete from ctulog.db_allot_center_64 where long_id='曾樸紹283902';
delete from ctulog.db_allot_center_64 where long_id='tingting831118';
delete from ctulog.db_allot_center_64 where long_id='輕舞飛揚061129付了';

[root@im_ctuallot1 tmp]# mysql -uroot -h227.0.0.1 --default-character-set=latin1  --force ctulog < loginid.sql
ERROR at line 2: Unknown command '''.
ERROR 1064 (42000) at line 2: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'pijkl';
delete from ctulog.db_allot_center_64 where long_id='ogku15mtb7c';
delet' at line 1

會出現一堆這樣的錯誤;
如果你手動把以上SQL貼到MYSQL中去執行:
root@127.0.0.1 : ctulog 15:59:04>
root@127.0.0.1 : ctulog 15:59:04> delete from ctulog.db_allot_center_64 where long_id='xouqun76818';
Query OK, 0 rows affected (0.00 sec)

root@127.0.0.1 : ctulog 15:59:05> delete from ctulog.db_allot_center_64 where long_id='bao'pijkl';
   '> delete from ctulog.db_allot_center_64 where long_id='ogku15mtb7c';
   '> delete from ctulog.db_allot_center_64 where long_id='jinlongkaikai@163.com';
   '> delete from ctulog.db_allot_center_64 where long_id='曾樸紹283902';
   '> delete from ctulog.db_allot_center_64 where long_id='tingting831118';
ERROR:
Unknown command '''.
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'pijkl';
delete from ctulog.db_allot_center_64 where long_id='ogku15mtb7c';
delet' at line 1
root@127.0.0.1 : ctulog 15:59:05> delete from ctulog.db_allot_center_64 where long_id='輕舞飛揚061129付了';
Query OK, 0 rows affected (0.00 sec)

root@127.0.0.1 : ctulog 15:59:10>

只有第一條,最后一條執行成功了; 

到這里我想大家應該明白了,
最關鍵的是單引號的不匹配導致MYSQL不能正確認識完整的SQL;
注意,在用戶ID中,出現 單個單引號,或以""結束,都會有這個問題;

問題找到了,其實解決很簡單,就是先把用戶ID中的單引號和"$"作一個轉換:
[root@im_ctuallot1 tmp]# cat loginid.txt
xouqun76818
bao'pijkl
ogku15mtb7c
jinlongkaikai@163.com
曾樸紹283902
tingting831118
輕舞飛揚061129付了
[root@im_ctuallot1 tmp]# sed -e "s///g" -e "s/'/'/g" -e "s/^/delete from ctulog.db_allot_center_64 where long_id='/g" -e "s/$/';/g"  loginid.txt > loginid.sql
[root@im_ctuallot1 tmp]# cat loginid.sql
delete from ctulog.db_allot_center_64 where long_id='xouqun76818';
delete from ctulog.db_allot_center_64 where long_id='bao'pijkl';
delete from ctulog.db_allot_center_64 where long_id='ogku15mtb7c';
delete from ctulog.db_allot_center_64 where long_id='jinlongkaikai@163.com';
delete from ctulog.db_allot_center_64 where long_id='曾樸紹283902';
delete from ctulog.db_allot_center_64 where long_id='tingting831118';
delete from ctulog.db_allot_center_64 where long_id='輕舞飛揚061129付了';
[root@im_ctuallot1 tmp]#

是這樣的SQL執行就不會有任何問題。

就這么簡單的問題,耗了5個小時,還是SHARE一下以免大家在這里浪費時間。

關于如何進行MYSQL特殊字符的處理就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。


文章名稱:如何進行MYSQL特殊字符的處理
URL地址:http://www.xueling.net.cn/article/iggohh.html

其他資訊

在線咨詢
服務熱線
服務熱線:028-86922220
TOP
主站蜘蛛池模板: 国产三级农村妇女做受 | 东北老妇爽的大叫天天看A片 | 欧美性一二三区 | 一区二区不卡免费视频 | 九色91在线视频 | 亚洲美女又黄又爽在线观看 | 亚洲日产av中文字幕 | 国产色小视频 | 久久精品3 | freexxx性麻豆hd16 | 白丝女仆裸体被强趴内裤啪啪 | 亚洲色大成网站www久久 | 不卡无在线一区二区三区 | 国产婷婷色一区二区三区四区 | 天天操夜夜操 | 成人的性行为免费 | 91少妇丨porny丨 | 日本一卡2卡3卡4卡5卡精品视频 | 99久久www | 国产精品久久久久9999无码 | 成人免费a级毛片无码片在线播放 | 91精品国产自产在线 | 97夜夜模夜夜爽夜夜喊 | 激情男女高潮射精AV免费 | 美女131爽爽爽做爰视频 | 国产精品啪啪对白自拍 | 日韩毛片在线免费观看 | 日韩一区二区三区无码人妻视频 | 欧美激情视频一区二区三区 | 成人精品三级 | 国产麻豆另类AV | 精品人人妻人人澡人人爽牛牛 | 人人妻人人澡人人爽精品日 | 激情91 | 国产日韩久久免费福利网站 | 国产白丝无码视频在线观看 | 亚洲AV无码精品色午夜蜜芽 | 麻豆freexxxx性91精品 | 午夜国产亚洲欧美 | 50岁人妻丰满熟妇αv无码区 | 天天色综合1 |