Python MySQL Where语句

使用筛选器来选取

从表中选择记录时,可以使用 "WHERE" 语句对选择进行筛选:

实例

选择记录为 "Park Lane 38" 的记录,结果:

  1. import mysql.connector
  2. mydb = mysql.connector.connect(
  3. host="localhost",
  4. user="myusername",
  5. passwd="mypassword",
  6. database="mydatabase"
  7. )
  8. mycursor = mydb.cursor()
  9. sql = "SELECT * FROM customers WHERE address = 'Park Lane 38'"
  10. mycursor.execute(sql)
  11. myresult = mycursor.fetchall()
  12. for x in myresult:
  13. print(x)

通配符

您也可以选择以给定字母或短语开头、包含或结束的记录。

请使用 表示通配符:

实例

选择地址中包含单词 "way" 的记录:

  1. import mysql.connector
  2. mydb = mysql.connector.connect(
  3. host="localhost",
  4. user="myusername",
  5. passwd="mypassword",
  6. database="mydatabase"
  7. )
  8. mycursor = mydb.cursor()
  9. sql = "SELECT * FROM customers WHERE address Like '%way%'"
  10. mycursor.execute(sql)
  11. myresult = mycursor.fetchall()
  12. for x in myresult:
  13. print(x)

防止 SQL 注入

当用户提供查询值时,您应该转义这些值。

此举是为了防止 SQL 注入,这是一种常见的网络黑客技术,可以破坏或滥用您的数据库。

mysql.connector 模块拥有转义查询值的方法:

实例

使用占位符 %s 方法来转义查询值:

  1. import mysql.connector
  2. mydb = mysql.connector.connect(
  3. host="localhost",
  4. user="myusername",
  5. passwd="mypassword",
  6. database="mydatabase"
  7. )
  8. mycursor = mydb.cursor()
  9. sql = "SELECT * FROM customers WHERE address = %s"
  10. adr = ("Yellow Garden 2", )
  11. mycursor.execute(sql, adr)
  12. myresult = mycursor.fetchall()
  13. for x in myresult:
  14. print(x)

分类导航