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