Pitón MySQL Dónde
Seleccionar con un filtro
Al seleccionar registros de una tabla, puede filtrar la selección utilizando la instrucción "DÓNDE":
Ejemplo
Seleccione registro(s) donde la dirección sea "Park Lane 38": resultado:
import mysql.connector
mydb = mysql.connector.connect(
host="localhost",
user="yourusername",
password="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)
Caracteres comodín
También puede seleccionar los registros que comienzan, incluyen o terminan con una letra o frase determinada.
Use el %
para representar caracteres comodín:
Ejemplo
Seleccione los registros donde la dirección contenga la palabra "camino":
import mysql.connector
mydb = mysql.connector.connect(
host="localhost",
user="yourusername",
password="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)
Prevenir la inyección de SQL
Cuando el usuario proporciona los valores de consulta, debe escapar los valores.
Esto es para evitar inyecciones de SQL, que es una técnica común de piratería web para destruir o hacer un mal uso de su base de datos.
El módulo mysql.connector tiene métodos para escapar de los valores de consulta:
Ejemplo
Escape de los valores de consulta mediante el %s
método de marcador de posición:
import mysql.connector
mydb = mysql.connector.connect(
host="localhost",
user="yourusername",
password="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)