Python MySQL Where

使用篩選器來選取

從表中選擇記錄時,可以使用 "WHERE" 語句對選擇進行篩選:

實例

選擇記錄為 "Park Lane 38" 的記錄,結果:

import mysql.connector
mydb = mysql.connector.connect(
  host="localhost",
  user="yourusername",
  passwd="yourpassword",
  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="yourusername",
  passwd="yourpassword",
  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 注入,這是一種常見的網絡黑客技術,可以破壞或濫用您的數據庫。

mysql.connector 模塊擁有轉義查詢值的方法:

實例

使用占位符 %s 方法來轉義查詢值:

import mysql.connector
mydb = mysql.connector.connect(
  host="localhost",
  user="yourusername",
  passwd="yourpassword",
  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)

運行實例