為什麼這篇sql like用法鄉民發文收入到精華區:因為在sql like用法這個討論話題中,有許多相關的文章在討論,這篇最有參考價值!作者sandwichC (沒回應=掛站)看板Python標題[問題] MySQLdb使用like敘述...
在Python中使用MySQLdb library來access mysql database時
為了避免 sql string中的變數含有引號,通常會用下面的方式
cursor.execute ("""
SELECT * FROM table WHERE name = %s
""", %(var))
若變數var中含有引號,仍然能被正常的執行
我的疑問是:如果今天改用like子句,如:
"""SELECT * FROM table WHERE name LIKE "%%s%" """, %(var)
第一個和第三個%符號希望當作like的萬用字元
但python會把它們解釋成第一個例子中%的用法
我知道可以直接用string.replace去掉引號,
但總覺得應該有辦法可以讓字串sql-safe的
類似像 cursor.execute(ToSqlSafeStr(sql_str)) 這樣子的用法
或者像第一個例子的用法
這是個相當常見的需求,Python上應該也早就有標準的解法了吧
但我在Google上找了找卻都只找到部份正確的解法 :(
不知道各位有沒有什麼好的建議呢?謝謝
--
My blog: http://sandwichc-life.blogspot.com/
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 68.232.127.230