溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Python中如何處理mysql特殊字符

發(fā)布時(shí)間:2021-07-29 09:06:11 來源:億速云 閱讀:433 作者:小新 欄目:開發(fā)技術(shù)

這篇文章主要介紹Python中如何處理mysql特殊字符,文中介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們一定要看完!

有的時(shí)候我們會(huì)去掃表,然后拿出掃的結(jié)果再到另一張表里去查信息。比如下面一段

index_sql_str = "select %s from user where %s = %d" % ("social_id", "user_id", u_id)
  db_cursor.execute(index_sql_str)
  rows = ['"' + row[0] + '"' for row in db_cursor.fetchall()]
  if len(rows) == 0:
    return None
  result = []
  sql_str = "select %s user_detail where %s in (%s)" % (",".join(user_third_column_name), "social_id", ",".join(rows))
  db_cursor.execute(sql_str)

常會(huì)有用%s或者+拼接query string的情況,這時(shí)候如果拿出來的鍵值帶有'或''就會(huì)導(dǎo)致拼接出現(xiàn)問題。

可以考慮用format,即

>>> a = 'test"test'
>>> "insert into user {0}".format(a)
'insert into user test"test'
>>> b = "test'test"
>>> "insert into user {0} where {1} = x".format(a,b)
'insert into user test"test where test\'test = x'

如果大小寫都包含會(huì)自己增加轉(zhuǎn)義字符

補(bǔ)充拓展:基于python中寫mysql關(guān)于like % 的問題

#@ 1 - 正常執(zhí)行的mysql 語句為:
 select * from RESIDENTIAL_AREA where RA_ID like 'HF-%' 
 
#@ 2 - 在python 代碼中為: 最后面的那個(gè) % 需要4個(gè)% 去代替(raid = HF-)
select_sql = ''' select * from RESIDENTIAL_AREA where RA_ID 
  like '%s%%%%' ''' % (raid)
 
 
 
#@ 3 - python 代碼中 輸出結(jié)果為:print(select_sql)
 select * from RESIDENTIAL_AREA where RA_ID like 'HF-%%'

以上是“Python中如何處理mysql特殊字符”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對(duì)大家有幫助,更多相關(guān)知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI