赛捷软件论坛's Archiver

vicky.yu 发表于 2020-11-10 10:13

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)
运行实例
MySQL Select
MySQL Order By
VUE
Python 参考手册
Python 实例
Python 测验
W3School 简体中文版提供的内容仅用于培训和测试,不保证内容的正确性。通过使用本站内容随之而来的风险与本站无关。

页: [1]

Powered by Discuz! Archiver 7.2  © 2001-2009 Comsenz Inc.