簡體   English   中英

使用 LIKE 和通配符進行 SQL/Python3/6 更新

[英]SQL/Python3/6 UPDATE with LIKE and wildcard

如何在“incident_id”列類似於“inc”的情況下更新 mytable 的“num”值

我嘗試更改為 LIKE '%%%S%%' 但出現錯誤,正確的方法是什么?

num = "I-102930"
inc = "hdtff-dd24r-sdft4-sfgg"       

 cur = conn.cursor()
 num = str(inc_num)
 inc = inc_id
 sql = """ UPDATE mytable SET incident_num =%s WHERE incident_id LIKE %s """
 val = (num, inc)
 cur.execute(sql, val)

正確的方法是使用? 您傳遞的參數的占位符並在查詢中連接'%'通配符:

sql = "UPDATE mytable SET incident_num = ? WHERE incident_id LIKE CONCAT('%', ?, '%')"
val = (num, inc)
cur.execute(sql, val)

CONCAT()是 MySql 連接字符串的方法。
一種更通用的與數據庫無關的方法是將通配符連接到變量inc

sql = "UPDATE mytable SET incident_num = ? WHERE incident_id LIKE ?"
val = (num, "%" + inc + "%")
cur.execute(sql, val)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM