2015-10-12 81 views
1

在PyMySQL的select語句中處理無值的最佳方式是什麼?例如,讓我們說,我想生成以下查詢:PyMySQL在選擇語句中處理無

SELECT * 
FROM table 
WHERE name = %s 
AND address = %s 
AND city = %s 
AND phone = %s 

然而,手機可以無在這種情況下,聲明將需要像下面這樣:

SELECT * 
FROM table 
WHERE name = %s 
AND address = %s 
AND city = %s 
AND phone IS NULL 

或以下也將是可以接受的:

SELECT * 
FROM table 
WHERE name = %s 
AND address = %s 
AND city = %s 

實際查詢要複雜得多,所以我在尋找一個通用的解決方案。在PHP中,我通常可以使用關聯數組進行搜索,然後過濾掉空值。

+0

如果有幫助,在Python DB API中,「SQL NULL值由Python None單獨表示輸入和輸出。」 –

+0

該部分很明顯,問題在於MySQL不寫「ITEM = NULL 「而是」ITEM IS NULL「 – user2694306

回答

0

也許是這樣的:

"SELECT * FROM table WHERE "+("phone = %s" if phone else "phone is NULL") 和繼續這種模式。