MySQL Where
پرش به ناوبری
پرش به جستجو
انتخاب با یک فیلتر
هنگام انتخاب رکوردها از یک جدول، میتوانید انتخاب را استفاده از عبارت “WHERE” فیلتر کنید:[۱]
مثال
رکوردهایی را انتخاب میکند که آدرس آنها "Park Lane 38" است:
نتیجه:
1 import mysql.connector
2
3 mydb = mysql.connector.connect(
4 host="localhost",
5 user="yourusername",
6 passwd="yourpassword",
7 database="mydatabase"
8 )
9
10 mycursor = mydb.cursor()
11
12 sql = "SELECT * FROM customers WHERE address ='Park Lane 38'"
13
14 mycursor.execute(sql)
15
16 myresult = mycursor.fetchall()
17
18 for x in myresult:
19 print(x)
کاراکترهای Wildcard
همچنین میتوانید رکودهایی که با حرف یا عبارت خاصی شروع میشوند، شامل میشوند یا به پایان میرسند را انتخاب کنید.
از %
برای نمایش کاراکترهای wildcard استفاده کنید:
مثال
انتخاب رکوردهایی که در آنها address شامل کلمه “way” باشد:
1 import mysql.connector
2
3 mydb = mysql.connector.connect(
4 host="localhost",
5 user="yourusername",
6 passwd="yourpassword",
7 database="mydatabase"
8 )
9
10 mycursor = mydb.cursor()
11
12 sql = "SELECT * FROM customers WHERE address LIKE '%way%'"
13
14 mycursor.execute(sql)
15
16 myresult = mycursor.fetchall()
17
18 for x in myresult:
19 print(x)
جلوگیری از SQL Injection
هنگامی که مقدارهای پرسوجو (به انگلیسی: query) توسط کاربر فراهم میشوند، باید از مقدارها بگریزید.
این کار برای جلوگیری از SQL Injectionها است، که یک تکنیک هک رایج برای نابودی یا سوءاستفاده از پایگاه داده شماست.
ماژول mysql.connector متدهایی برای گریز از مقدارهای پرسوجو دارد:
مثال
با استفاده از متد %s
placholder از مقدار در پرسوجو میگریزد:
1 import mysql.connector
2
3 mydb = mysql.connector.connect(
4 host="localhost",
5 user="yourusername",
6 passwd="yourpassword",
7 database="mydatabase"
8 )
9
10 mycursor = mydb.cursor()
11
12 sql = "SELECT * FROM customers WHERE address = %s"
13 adr = ("Yellow Garden 2", )
14
15 mycursor.execute(sql, adr)
16
17 myresult = mycursor.fetchall()
18
19 for x in myresult:
20 print(x)
منابع آموزشی