看板 Python 關於我們 聯絡資訊
版友日安 我現在要利用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
MOONY135: https://goo.gl/wjKctn 06/01 10:45
kobe8112: 很多方式,就算用最最簡單的字串串接也可以呀 06/01 10:50
kobe8112: 例如將輸入格式化成list,完整查詢指令的字串用 06/01 10:51
kobe8112: prefix + list通通取出來 + postfix 06/01 10:52