Python MySQL Onde
Selecione com um filtro
Ao selecionar registros de uma tabela, você pode filtrar a seleção usando a instrução "WHERE":
Exemplo
Selecione o(s) registro(s) onde o endereço é "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 curinga
Você também pode selecionar os registros que começam, incluem ou terminam com uma determinada letra ou frase.
Use o %
para representar caracteres curinga:
Exemplo
Selecione os registros onde o endereço contém a palavra "way":
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)
Evitar injeção de SQL
Quando os valores de consulta são fornecidos pelo usuário, você deve escapar dos valores.
Isso é para evitar injeções de SQL, que é uma técnica comum de hackers na Web para destruir ou usar indevidamente seu banco de dados.
O módulo mysql.connector tem métodos para escapar dos valores da consulta:
Exemplo
Escape de valores de consulta usando o %s
método placeholder:
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)