Python中使用MySQL模糊查詢(xún)的詳細(xì)方法
1.方法一:使用pymysql庫(kù)的方法
當(dāng)在Python中使用MySQL進(jìn)行模糊查詢(xún)時(shí),我們通常會(huì)使用pymysql
或mysql-connector-python
這樣的庫(kù)來(lái)連接MySQL數(shù)據(jù)庫(kù)并執(zhí)行查詢(xún)。以下是一個(gè)使用pymysql
進(jìn)行模糊查詢(xún)的詳細(xì)示例,包括安裝庫(kù)、連接數(shù)據(jù)庫(kù)、執(zhí)行查詢(xún)以及處理結(jié)果。
1.1 安裝pymysql庫(kù)
首先,確保我們已經(jīng)安裝了pymysql
庫(kù)。如果沒(méi)有,可以通過(guò)pip來(lái)安裝:
bash復(fù)制代碼 pip install pymysql
1.2 編寫(xiě)Python代碼進(jìn)行模糊查詢(xún)
import pymysql # 數(shù)據(jù)庫(kù)連接配置 config = { 'host': 'localhost', 'user': 'your_username', 'password': 'your_password', 'database': 'your_database', 'charset': 'utf8mb4', 'cursorclass': pymysql.cursors.DictCursor } # 連接數(shù)據(jù)庫(kù) connection = pymysql.connect(**config) try: with connection.cursor() as cursor: # 編寫(xiě)SQL查詢(xún)語(yǔ)句,使用LIKE進(jìn)行模糊查詢(xún) # 假設(shè)我們有一個(gè)名為"articles"的表,其中有一個(gè)"content"字段,我們想要查詢(xún)包含"Python"關(guān)鍵字的文章 sql = "SELECT * FROM articles WHERE content LIKE %s" # LIKE查詢(xún)中,%是通配符,代表任意數(shù)量的字符(包括零個(gè)字符) # 我們需要為%s提供一個(gè)包含%的字符串來(lái)構(gòu)建LIKE查詢(xún) search_term = '%Python%' cursor.execute(sql, (search_term,)) # 獲取所有查詢(xún)結(jié)果 results = cursor.fetchall() # 處理查詢(xún)結(jié)果 for row in results: # row是一個(gè)字典,其中包含了查詢(xún)結(jié)果的每一列及其對(duì)應(yīng)的值 print(f"ID: {row['id']}, Title: {row['title']}, Content: {row['content'][:50]}...") # 只打印內(nèi)容的前50個(gè)字符作為示例 finally: # 關(guān)閉數(shù)據(jù)庫(kù)連接 connection.close()
1.3 注意事項(xiàng)
(1)請(qǐng)將your_username
、your_password
、your_database
替換為我們的MySQL數(shù)據(jù)庫(kù)的實(shí)際用戶(hù)名、密碼和數(shù)據(jù)庫(kù)名。
(2)在上面的示例中,我們使用了%
作為通配符來(lái)構(gòu)建LIKE查詢(xún)。%Python%
將匹配任何包含"Python"的字符串,不論其前后是否有其他字符。如果我們只想匹配以"Python"開(kāi)頭的字符串,可以使用Python%
;只想匹配以"Python"結(jié)尾的字符串,可以使用%Python
。
(3)在執(zhí)行查詢(xún)時(shí),我們使用了一個(gè)元組(search_term,)
來(lái)傳遞參數(shù)給cursor.execute()
方法。注意這個(gè)元組只有一個(gè)元素,但也需要逗號(hào)來(lái)標(biāo)識(shí)它是一個(gè)元組,而不是一個(gè)括號(hào)內(nèi)的普通表達(dá)式。
(4)fetchall()
方法用于獲取查詢(xún)結(jié)果的所有行。如果我們只需要獲取部分結(jié)果,可以使用fetchone()
或fetchmany(size)
方法。
(5)在處理完數(shù)據(jù)庫(kù)操作后,確保關(guān)閉數(shù)據(jù)庫(kù)連接以釋放資源。在這個(gè)示例中,我們使用了一個(gè)try...finally
塊來(lái)確保即使在發(fā)生異常時(shí)也能關(guān)閉連接。
2.方法二:使用mysql-connector-python庫(kù)的方法
除了使用pymysql
庫(kù)進(jìn)行MySQL的模糊查詢(xún)之外,還可以使用mysql-connector-python
庫(kù),這是MySQL官方提供的Python連接器。以下是使用mysql-connector-python
進(jìn)行模糊查詢(xún)的示例代碼:
2.1 安裝mysql-connector-python庫(kù)
如果還沒(méi)有安裝mysql-connector-python
,可以通過(guò)pip來(lái)安裝:
bash復(fù)制代碼 pip install mysql-connector-python
2.2 編寫(xiě)Python代碼進(jìn)行模糊查詢(xún)
import mysql.connector # 數(shù)據(jù)庫(kù)連接配置 config = { 'host': 'localhost', 'user': 'your_username', 'password': 'your_password', 'database': 'your_database' } # 連接數(shù)據(jù)庫(kù) cnx = mysql.connector.connect(**config) try: cursor = cnx.cursor(dictionary=True) # 使用字典游標(biāo)以便獲取結(jié)果作為字典 # 編寫(xiě)SQL查詢(xún)語(yǔ)句,使用LIKE進(jìn)行模糊查詢(xún) # 假設(shè)我們有一個(gè)名為"articles"的表,其中有一個(gè)"content"字段,我們想要查詢(xún)包含"Python"關(guān)鍵字的文章 query = ("SELECT * FROM articles WHERE content LIKE %s") search_term = '%Python%' # LIKE查詢(xún)中,%是通配符 # 注意:mysql-connector-python中的參數(shù)化查詢(xún)需要確保%是查詢(xún)字符串的一部分 # 因此我們直接構(gòu)造完整的LIKE表達(dá)式字符串 cursor.execute(query, (search_term,)) # 獲取所有查詢(xún)結(jié)果 results = cursor.fetchall() # 處理查詢(xún)結(jié)果 for row in results: print(f"ID: {row['id']}, Title: {row['title']}, Content: {row['content'][:50]}...") # 只打印內(nèi)容的前50個(gè)字符作為示例 finally: # 關(guān)閉游標(biāo)和連接 if cursor: cursor.close() if cnx.is_connected(): cnx.close()
2.3 注意事項(xiàng)
(1)同樣需要將your_username
、your_password
、your_database
替換為我們的MySQL數(shù)據(jù)庫(kù)的實(shí)際用戶(hù)名、密碼和數(shù)據(jù)庫(kù)名。
(2)在mysql.connector.connect()
中,我們沒(méi)有直接指定字符集和游標(biāo)類(lèi)型,因?yàn)?code>mysql-connector-python的默認(rèn)配置通常已經(jīng)足夠好。但是,如果需要,我們可以添加這些配置選項(xiàng)。
(3)使用cursor.close()
和cnx.close()
來(lái)確保游標(biāo)和連接都被正確關(guān)閉。
(4)mysql-connector-python
也支持使用上下文管理器(即with
語(yǔ)句)來(lái)自動(dòng)管理游標(biāo)和連接的關(guān)閉,但這需要?jiǎng)?chuàng)建一個(gè)新的游標(biāo)類(lèi)或使用特定的上下文管理器。在上面的示例中,我們手動(dòng)關(guān)閉了它們以展示基本的資源管理。
(5)在處理數(shù)據(jù)庫(kù)查詢(xún)時(shí),務(wù)必注意SQL注入的風(fēng)險(xiǎn)。通過(guò)使用參數(shù)化查詢(xún)(如上例所示),我們可以確保用戶(hù)輸入被正確地轉(zhuǎn)義,從而防止SQL注入攻擊。
到此這篇關(guān)于Python中使用MySQL模糊查詢(xún)的方法的文章就介紹到這了,更多相關(guān)Python中使用MySQL模糊查詢(xún)的方法內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- Python使用sql語(yǔ)句對(duì)mysql數(shù)據(jù)庫(kù)多條件模糊查詢(xún)的思路詳解
- Python Django2 model 查詢(xún)介紹(條件、范圍、模糊查詢(xún))
- python中數(shù)據(jù)庫(kù)like模糊查詢(xún)方式
- python Django中models進(jìn)行模糊查詢(xún)的示例
- Python編寫(xiě)通訊錄通過(guò)數(shù)據(jù)庫(kù)存儲(chǔ)實(shí)現(xiàn)模糊查詢(xún)功能
- Python操作mongodb數(shù)據(jù)庫(kù)進(jìn)行模糊查詢(xún)操作示例
- Python模糊查詢(xún)本地文件夾去除文件后綴的實(shí)例(7行代碼)
- mysql 模糊查詢(xún) concat()的用法詳解
- mysql如何讓左模糊查詢(xún)也能走索引
相關(guān)文章
Python簡(jiǎn)單實(shí)現(xiàn)查找一個(gè)字符串中最長(zhǎng)不重復(fù)子串的方法
這篇文章主要介紹了Python簡(jiǎn)單實(shí)現(xiàn)查找一個(gè)字符串中最長(zhǎng)不重復(fù)子串的方法,涉及Python針對(duì)字符串的簡(jiǎn)單遍歷、運(yùn)算等相關(guān)操作技巧,需要的朋友可以參考下2018-03-03利用Python搶回在螞蟻森林逝去的能量(實(shí)現(xiàn)代碼)
螞蟻森林是一項(xiàng)旨在帶動(dòng)公眾低碳減排的公益項(xiàng)目,每個(gè)人的低碳行為在螞蟻森林里可計(jì)為"綠色能量",很多小伙伴都玩過(guò),今天小編給大家分享一篇教程關(guān)于Python搶回在螞蟻森林逝去的能量,感興趣的朋友跟隨小編一起看看吧2022-03-03Python中的“_args”和“__kwargs”用法詳解
*args 和 **kwargs 主要?于函數(shù)定義,你可以將不定數(shù)量的參數(shù)傳遞給?個(gè)函數(shù),這篇文章主要介紹了Python中的“_args”和“__kwargs”用法,需要的朋友可以參考下2023-01-01python+selenium實(shí)現(xiàn)163郵箱自動(dòng)登陸的方法
本篇文章主要介紹了python+selenium實(shí)現(xiàn)163郵箱自動(dòng)登陸的方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-12-12