Python MySQL WHERE 子句
帶條件的 SELECT 語句
當從表中選擇記錄時,您可以使用 "WHERE" 語句來過濾選擇。
示例
選擇地址為 "Park Lane 38" 的記錄: 結果
import mysql.connector
mydb = mysql.connector.connect(
host="localhost",
user="你的使用者名稱",
password="你的密碼",
database="mydatabase"
)
mycursor = mydb.cursor()
sql = "SELECT * FROM customers WHERE address ='Park Lane 38'"
mycursor.execute(sql)
myresult = mycursor.fetchall()
for x in myresult
print(x)
執行示例 »
萬用字元字元
您還可以選擇以給定字母或短語開頭、包含或結尾的記錄。
使用 %
來表示萬用字元。
示例
選擇地址包含單詞 "way" 的記錄
import mysql.connector
mydb = mysql.connector.connect(
host="localhost",
user="你的使用者名稱",
password="你的密碼",
database="mydatabase"
)
mycursor = mydb.cursor()
sql = "SELECT * FROM customers WHERE address LIKE '%way%'"
mycursor.execute(sql)
myresult = mycursor.fetchall()
for x in myresult
print(x)
執行示例 »
防止 SQL 注入
當查詢值由使用者提供時,您應該轉義這些值。
這是為了防止 SQL 注入,SQL 注入是一種常見的網路攻擊技術,用於破壞或濫用您的資料庫。
mysql.connector 模組提供了轉義查詢值的方法。
示例
使用佔位符 %s
方法轉義查詢值
import mysql.connector
mydb = mysql.connector.connect(
host="localhost",
user="你的使用者名稱",
password="你的密碼",
database="mydatabase"
)
mycursor = mydb.cursor()
sql = "SELECT * FROM customers WHERE address = %s"
adr = ("Yellow Garden 2", )
mycursor.execute(sql, adr)
myresult = mycursor.fetchall()
for x in myresult
print(x)
執行示例 »