Kde Python MySQL
Vyberte možnost S filtrem
Při výběru záznamů z tabulky můžete výběr filtrovat pomocí příkazu „WHERE“:
Příklad
Vyberte záznam(y), kde je adresa "Park Lane 38": výsledek:
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)
Zástupné znaky
Můžete také vybrat záznamy, které začínají, obsahují nebo končí daným písmenem nebo frází.
Použijte %
k reprezentaci zástupných znaků:
Příklad
Vyberte záznamy, kde adresa obsahuje slovo „cesta“:
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)
Zabránit vkládání SQL
Když uživatel zadá hodnoty dotazu, měli byste tyto hodnoty escapovat.
Je to proto, aby se zabránilo injekcím SQL, což je běžná technika hackování webu za účelem zničení nebo zneužití vaší databáze.
Modul mysql.connector má metody pro únik hodnot dotazu:
Příklad
Opusťte hodnoty dotazu pomocí metody placholder %s
:
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)