iT邦幫忙

0

PY連結SQL 字串問題

cursor.execute('SELECT * FROM CUSTOMERS WHERE NAME LIKE '%ik%' ' )

請問碰到這樣有%的符號時 怎麼樣輸入才是正確的

跳錯
cursor.execute('SELECT * FROM CUSTOMERS WHERE NAME LIKE '%ik%' ' )
NameError: name 'ik' is not defined

我的''應該是怎麼加才會正確 請教各位大大

1 個回答

1
froce
iT邦大師 3 級 ‧ 2020-02-13 22:43:57
最佳解答

不知道你是用哪種資料庫那個套件,不過sqlite3的話:

cursor.execute('SELECT * FROM CUSTOMERS WHERE NAME LIKE ?', '%ik%')

不同套件不同資料庫略有不同,有的後面是要輸入tuple。

看更多先前的回應...收起先前的回應...
canon760d iT邦新手 5 級 ‧ 2020-02-13 22:46:26 檢舉

MSSQL 我試試看能不能通用 謝謝大大回復

canon760d iT邦新手 5 級 ‧ 2020-02-13 22:48:47 檢舉

有了感謝

canon760d iT邦新手 5 級 ‧ 2020-02-13 22:52:05 檢舉

想在請問一下?這個參數的含意是什麼 感謝><

froce iT邦大師 3 級 ‧ 2020-02-13 23:02:05 檢舉
froce iT邦大師 3 級 ‧ 2020-02-13 23:04:19 檢舉

?就代表你要帶入的參數,要帶入的參數除非沒有外部使用者能改,要不然就得像這樣用參數帶入,要不然會被注入的不要不要的。

像下面就是代表我要取名字中有ik並且大於30歲的。

cursor.execute('SELECT * FROM CUSTOMERS WHERE NAME LIKE ? and age > ?', '%ik%', 30)

然後各個套件都有不同的用法,請自己去參閱套件的說明。
python的套件說明幾乎都很清楚。

canon760d iT邦新手 5 級 ‧ 2020-02-14 09:19:34 檢舉

好的謝謝您

我要發表回答

立即登入回答