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)
运行实例 »