轻松上手,快乐学习!

Python MySQL 条件查询


筛选查询

从表中查询记录时,可以使用“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" - 表示查询以"way"开头的记录

"%way%" - 表示查询包含"way"的记录

"way%" - 表示查询以"way"结尾的记录

实例

查询地址中包含“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)

运行实例 »