Python MySQL Hvor

Vælg ved hjælp af filter

Når du vælger poster fra en tabel, kan du bruge "WHERE"-sætningen til at filtrere valgene:

Eksempel

Vælg poster med "Park Lane 38", resultaterne:

import mysql.connector
mydb = mysql.connector.connect(
  host="localhost",
  user="yourusername",
  passwd="yourpassword",
  database="mydatabase"
)
mycursor = mydb.cursor()
sql = "Vælg * fra customers" WHERE address ='Park Lane 38'"
mycursor.execute(sql)
myresult = mycursor.fetchall()
for x in myresult:
  print(x)

Kør Eksempel

Jokertegn

Du kan også vælge poster, der starter med, indeholder eller slutter med en given bogstav eller sætning.

Brug % Betyder jokertegn:

Eksempel

Vælg poster, der indeholder ordet "way" i adressen:

import mysql.connector
mydb = mysql.connector.connect(
  host="localhost",
  user="yourusername",
  passwd="yourpassword",
  database="mydatabase"
)
mycursor = mydb.cursor()
sql = "Vælg * fra customers WHERE address LIKE '"%way%"
mycursor.execute(sql)
myresult = mycursor.fetchall()
for x in myresult:
  print(x)

Kør Eksempel

Forebygg SQL-injektion

Når brugere leverer spørgsmålsværdier, bør du escape disse værdier.

Dette er for at forhindre SQL-injektion, som er en almindelig netthacker-teknik, der kan ødelægge eller misbruge din database.

mysql.connector-modulen har metoder til at escape spørgsmålsværdier:

Eksempel

Brug metoden %s til at escape spørgsmålsværdier:

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)

Kør Eksempel