Python MySQL Où
Sélectionner avec un filtre
Lors de la sélection d'enregistrements dans une table, vous pouvez filtrer la sélection à l'aide de l'instruction "WHERE" :
Exemple
Sélectionnez le ou les enregistrements dont l'adresse est "Park Lane 38": résultat :
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)
Caractères génériques
Vous pouvez également sélectionner les enregistrements qui commencent, incluent ou se terminent par une lettre ou une phrase donnée.
Utilisez le %
pour représenter les caractères génériques :
Exemple
Sélectionnez les enregistrements dont l'adresse contient le mot "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)
Empêcher l'injection SQL
Lorsque des valeurs de requête sont fournies par l'utilisateur, vous devez échapper les valeurs.
Ceci afin d'empêcher les injections SQL, qui est une technique de piratage Web courante pour détruire ou abuser de votre base de données.
Le module mysql.connector a des méthodes pour échapper les valeurs de requête :
Exemple
Échapper aux valeurs de requête à l'aide de la %s
méthode d'espace réservé :
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)