Python – فیلتر کردن اطلاعات در (MySQL Where)
آخرین بروزرسانی:
انتخاب با فیلتر
هنگام انتخاب رکوردها از یک جدول، میتوانید با استفاده از عبارت “WHERE” انتخاب را فیلتر کنید:
مثال
رکوردهایی را انتخاب کنید که آدرس آنها “Park Lane 38” است:
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)
کاراکترهای وایلدکارد (Wildcard)
میتوانید رکوردهایی را که با یک حرف یا عبارت مشخص شروع، شامل یا به آن ختم میشوند انتخاب کنید.
از %
برای نمایش کاراکترهای وایلدکارد استفاده کنید:
مثال
رکوردهایی را انتخاب کنید که آدرس آنها شامل کلمه “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)
جلوگیری از SQL Injection
هنگامی که مقادیر کوئری توسط کاربر فراهم میشود، باید مقادیر را اسکیپ کنید.
این کار برای جلوگیری از حملات SQL injection است که یک تکنیک هک رایج برای خراب کردن یا سوء استفاده از دیتابیس شما است.
ماژول mysql.connector
دارای متدهایی برای اسکیپ کردن مقادیر کوئری است:
مثال
مقادیر کوئری را با استفاده از متد placeholder %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)
برای ارسال نظر لطفا ابتدا وارد حساب کاربری خود شوید. صفحه ورود و ثبت نام