作者MAGICXX (逢甲阿法)
看板Python
標題[問題] SQL一個欄位裡面找複數目標
時間Fri Jun 1 09:12:22 2018
版友日安
我現在要利用PYQT下去資料庫裡面撈資料
遇到一個問題
我現在的query大概是這樣下去處理
cmd="SELECT * FROM resdb WHERE 水庫名稱 IN ('{0}')"
.format(
str(self.res_name.text())
)
我給使用者一個textbox輸入他要找的水庫名稱
可是這樣會發生一個問題
如果只有輸入一個的話 他是可以正常用的
整個cmd會變成
SELECT * FROM resdb WHERE 水庫名稱 in ('石門水庫,西勢水庫')
這樣下去的話 會找不到欄位裡面有「石門水庫,西勢水庫」這筆資料
因為我的欄位裡面 石門水庫跟西勢水庫是分開的
請問一下 我該怎麼處理 讓他在SQL裡面可以找複數的目標呢?
感謝!
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.134.166.72
※ 文章網址: https://www.ptt.cc/bbs/Python/M.1527815545.A.EE2.html
→ kobe8112: 你需要限定使用者輸入的格式,拆開後再合併到SQL查詢吧 06/01 09:29
→ kobe8112: where 水庫名稱 in ('石門水庫','西勢水庫') 06/01 09:30
→ aszx4510: 你為什麼要把使用者的輸入"直接"放到SQL指令中呢~ 06/01 09:41
謝謝兩位大大
我有想過要在程式碼裡面處理
可是我實在不知道怎麼著手...冏
※ 編輯: MAGICXX (140.134.166.72), 06/01/2018 09:55:11
→ MOONY135: 我覺得這是SQL問題 06/01 10:42
→ MOONY135: 你沒有限定輸入格式的話 是不可能的 06/01 10:45
→ kobe8112: 很多方式,就算用最最簡單的字串串接也可以呀 06/01 10:50
→ kobe8112: 例如將輸入格式化成list,完整查詢指令的字串用 06/01 10:51
→ kobe8112: prefix + list通通取出來 + postfix 06/01 10:52