فیلتر سازی با where در پایگاه داده MySQL

  • مدرس: علی بیگدلی
  • تاریخ انتشار: Oct 19, 2020

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

هنگام انتخاب سوابق از جدول ، می توانید انتخاب را با استفاده از عبارت "WHERE" فیلتر کنید:

برای مثال در قطعه کد زیر رکورد (های) محل آدرس "Park Lane 38" را انتخاب می کنیم:

import mysql.connector

mydb = mysql.connector.connect(
  host="localhost",
  user="myusername",
  passwd="mypassword",
  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)

خروجی:

(11, 'Ben', 'Park Lane 38')

کارکترهای  Wildcard

همچنین می توانید سوابق انتخاب شده ، شامل یا پایان یافته با یک حرف یا عبارت مشخص را انتخاب کنید.

از٪ برای نمایش نویسه های wildcard استفاده کنید.

برای مثال قطعه کد زیر سوابقی را انتخاب می کند که آدرس حاوی کلمه "way" باشد:

import mysql.connector

mydb = mysql.connector.connect(
  host="localhost",
  user="myusername",
  passwd="mypassword",
  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) 

خروجی:

(1, 'John', 'Highway 21')
(9, 'Susan', 'One way 98')
(14, 'Viola', 'Sideway 1633') 

جلوگیری از تزریق SQL

هنگامی که مقادیر پرس و جو توسط کاربر ارائه می شود ، باید از مقادیر فرار کنید.

این کار برای جلوگیری از تزریق SQL است که یک روش هک وب مشترک برای تخریب یا سو mis استفاده از پایگاه داده شما است.

ماژول mysql.connector روشهایی برای فرار از مقادیر پرس و جو دارد:

برای مثال در قطعه کد زیر با استفاده از روش نگهدارنده ٪ s از مقادیرquery فرار کنید:

import mysql.connector

mydb = mysql.connector.connect(
  host="localhost",
  user="myusername",
  passwd="mypassword",
  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)

خروجی:

(10, 'Vicky', 'Yellow Garden 2') 

 

ثبت دیدگاه
نام *
ایمیل*
دیدگاه *
0دیدگاه