Python MySQL Where
- Предыдущая страница MySQL Select
- Следующая страница MySQL Order By
Используйте фильтр для выбора
При выборе записей из таблицы можно использовать оператор "WHERE" для фильтрации выбора:
Пример
Выберите записи, соответствующие "Park Lane 38", результат:
import mysql.connector mydb = mysql.connector.connect( host="localhost", user="yourusername", passwd="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)
Символ подстановки
Вы также можете выбрать записи, начинающиеся с заданного символа или фразы, содержащие или заканчивающиеся на него.
Пожалуйста, используйте %
Представляет собой символ подстановки:
Пример
Выберите записи, адреса которых содержат слово "way":
import mysql.connector mydb = mysql.connector.connect( host="localhost", user="yourusername", passwd="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)
Предотвращение SQL-инъекций
Когда пользователи предоставляют значения запроса, вы должны escaping эти значения.
Это делается для предотвращения SQL-инъекций, это распространенная техника хакеров, которая может разрушить или злоупотребить вашей базой данных.
Модуль mysql.connector имеет методы для escaping значений запроса:
Пример
Использование метода占位ника %s для escaping значений запроса:
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)
- Предыдущая страница MySQL Select
- Следующая страница MySQL Order By