MySQL Where

انتخاب براساس یک فیلتر

وقتی که یک رکورد را از یک جدول انتخاب می‌کنید می‌توانید با دستور “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)

Wildcard Characters

می‌توان رکوردهایی را که حاوی کلمات و عبارات خاصی هستند انتخاب کرد.

با استفاده از % می‌توان این مسئله را بیان کرد.

 

مثال: انتخاب رکوردهایی که در آدرس شان کلمه “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)

جلوگیری از تزریق (Prevent SQL Injection)

وقتی که کاربر یک query را میدهد شما باید از آن فرار کنید.

این برای جلوگیری از تزریق SQL است. که یک تکنیک جلوگیری از حمله هکر ها به منظور از بین بردن پایگاه داده محسوب می‌شود.

ماژول mysql.connector متد هایی برای فرار از تزریق SQL دارد.

 

مثال: فرار از تزریق SQL با استفاده از s%

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)