Python使用sql語(yǔ)句對(duì)mysql數(shù)據(jù)庫(kù)多條件模糊查詢的思路詳解
def find_worldByName(c_name,continent):
print(c_name)
print(continent)
sql = " SELECT * FROM world WHERE 1=1 "
if(c_name!=None):
sql=sql+"AND ( c_name LIKE '%"+c_name+"%' )"
if(continent!=None):
sql=sql+" AND ( continent LIKE '%"+continent+"%') "
sql=sql+" AND dt=(SELECT dt FROM world order by dt desc limit 1) order by confirm desc "
# "AND continent LIKE '%%%%%s%%%%'" \
# " order by dt desc " %(c_name,continent)
# sql_temp = " SELECT * FROM world WHERE c_name LIKE '%"+c_name+"%' "
res = query(sql)
list= []
for i in res:
# print(i)
list.append(i)
return list;
背景:
頁(yè)面的搜索框是有兩個(gè)搜索條件,一個(gè)是國(guó)家,一個(gè)是大洲。
那么在數(shù)據(jù)庫(kù)查詢的時(shí)候就會(huì)出現(xiàn)問(wèn)題,如果國(guó)家傳的值是None那么使用AND連接的sql語(yǔ)句這個(gè)條件會(huì)被
整體判定為false,也就是另一個(gè)查詢條件 “大洲 ”就會(huì)作廢,為了防止參數(shù)出現(xiàn)這樣的錯(cuò)誤。需要在寫sql語(yǔ)
句的時(shí)候?qū)?shù)是否為空加一個(gè)判斷條件,然后逐層添加sql語(yǔ)句。
思路:
首先使用開頭的一個(gè)sql語(yǔ)句:
sql = " SELECT * FROM world WHERE 1=1 "
之后逐層判定參數(shù)是否為空,再拼接sql語(yǔ)句:
if(c_name!=None):
sql=sql+"AND ( c_name LIKE '%"+c_name+"%' )"
if(continent!=None):
sql=sql+" AND ( continent LIKE '%"+continent+"%') "
sql=sql+" AND dt=(SELECT dt FROM world order by dt desc limit 1) order by confirm desc "
還有一個(gè)地方需要注意:
sql語(yǔ)句傳參數(shù),參數(shù)是一個(gè)變量,有兩種方式:
① 直接拼接到sql語(yǔ)句中:
var c_name="test" sql_temp = " SELECT * FROM world WHERE c_name LIKE ' %"+c_name+"% '"
② 使用占位符%代替,在語(yǔ)句末尾再替換占位符:
sql = " SELECT * FROM world WHERE c_name LIKE '%%%%%s%%%%' AND continent LIKE '%%%%%s%%%%'" %(c_name,continent)

Tomorrow the birds will sing.
到此這篇關(guān)于Python使用sql語(yǔ)句對(duì)mysql數(shù)據(jù)庫(kù)多條件模糊查詢的思路詳解的文章就介紹到這了,更多相關(guān)Python mysql多條件模糊查詢內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- Python Django2 model 查詢介紹(條件、范圍、模糊查詢)
- python中數(shù)據(jù)庫(kù)like模糊查詢方式
- python Django中models進(jìn)行模糊查詢的示例
- Python編寫通訊錄通過(guò)數(shù)據(jù)庫(kù)存儲(chǔ)實(shí)現(xiàn)模糊查詢功能
- Python操作mongodb數(shù)據(jù)庫(kù)進(jìn)行模糊查詢操作示例
- Python模糊查詢本地文件夾去除文件后綴的實(shí)例(7行代碼)
- mysql 模糊查詢 concat()的用法詳解
- mysql如何讓左模糊查詢也能走索引
- Python中使用MySQL模糊查詢的詳細(xì)方法
相關(guān)文章
Python優(yōu)化技巧之利用ctypes提高執(zhí)行速度
ctypes是Python的一個(gè)外部庫(kù),提供和C語(yǔ)言兼容的數(shù)據(jù)類型,可以很方便地調(diào)用C DLL中的函數(shù)。今天我們就來(lái)詳細(xì)探討下ctypes庫(kù)的使用技巧2016-09-09
Python?中的?Counter?模塊及使用詳解(搞定重復(fù)計(jì)數(shù))
Counter 是一個(gè)簡(jiǎn)單的計(jì)數(shù)器,用于統(tǒng)計(jì)某些可哈希對(duì)象的數(shù)量。它以字典的形式存儲(chǔ)元素和它們的計(jì)數(shù),這篇文章主要介紹了Python?中的?Counter?模塊及使用詳解(搞定重復(fù)計(jì)數(shù)),需要的朋友可以參考下2023-04-04
python pcm音頻添加頭轉(zhuǎn)成Wav格式文件的方法
今天小編就為大家分享一篇python pcm音頻添加頭轉(zhuǎn)成Wav格式文件的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-01-01
Python使用Tkinter制作一個(gè)進(jìn)制轉(zhuǎn)換工具
在平時(shí)工作學(xué)習(xí)當(dāng)中,我們經(jīng)常會(huì)編寫一些簡(jiǎn)單的 Python GUI 工具,以此來(lái)完成各種各樣的自動(dòng)化任務(wù),下面我們就來(lái)看看如何使用Python制作一個(gè)進(jìn)制轉(zhuǎn)換工具吧2024-01-01
pytorch Dataset,DataLoader產(chǎn)生自定義的訓(xùn)練數(shù)據(jù)案例
這篇文章主要介紹了pytorch Dataset, DataLoader產(chǎn)生自定義的訓(xùn)練數(shù)據(jù)案例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-03-03
python實(shí)現(xiàn)rest請(qǐng)求api示例
這篇文章主要介紹了python實(shí)現(xiàn)rest請(qǐng)求api示例,需要的朋友可以參考下2014-04-04
python3+PyQt5實(shí)現(xiàn)文檔打印功能
這篇文章主要為大家詳細(xì)介紹了python3+PyQt5實(shí)現(xiàn)文檔打印功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-04-04

