عملگرهای and و or در SQL
عملگرهای AND و OR برای فیلتر کردن رکوردها، براساس بیشتر از یک شرط استفاده می شوند.
عملگرهای AND و OR
عملگر AND رکوردی را نمایش می دهد که هم شرط اول و هم شرط دوم در آن صدق کند.
عملگر OR رکوردی را نمایش می دهد که یا شرط اول و یا شرط دوم یا هر دو در آن صدق کند.
مثالی از عملگر AND
در جدول "Persons":
P_Id | LastName | FirstName | Address | City |
---|---|---|---|---|
1 | Hansen | Ola | Timoteivn 10 | Sandnes |
2 | Svendson | Tove | Borgvn 23 | Sandnes |
3 | Pettersen | Kari | Storgt 20 | Stavanger |
می خواهیم تنها افرادی را انتخاب کنیم که نام آنها مساوی "Tove" و نام خانوادگی آنها مساوی "Svendson" باشد.
برای این منظور از دستور SELECT زیر استفاده می کنیم.
SELECT * FROM Persons
WHERE FirstName='Tove'
AND LastName='Svendson'
نتیجه به شکل زیر خواهد شد:
P_Id | LastName | FirstName | Address | City |
---|---|---|---|---|
2 | Svendson | Tove | Borgvn 23 | Sandnes |
مثالی از عملگر OR
می خواهیم افرادی را که نام آنها Tove یا Ola می باشد را انتخاب کنیم:
از دستور زیر استفاده می کنیم:
SELECT * FROM Persons
WHERE FirstName='Tove'
OR FirstName='Ola'
نتیجه به شکل زیر خواهد بود:
P_Id | LastName | FirstName | Address | City |
---|---|---|---|---|
1 | Hansen | Ola | Timoteivn 10 | Sandnes |
2 | Svendson | Tove | Borgvn 23 | Sandnes |
ترکیب AND و OR
می توانید AND و OR را با هم ترکیب کنید. (از پرانتز برای ترکیب عبارات استفاده کنید)
می خواهیم افرادی را انتخاب کنیم که نام خانوادگی آنها Svendson و نام آنها Tove یا Ola باشد.
از دستور زیر استفاده می کنیم:
SELECT * FROM Persons WHERE
LastName='Svendson'
AND (FirstName='Tove' OR FirstName='Ola')
جدول نتیجه به شکل زیر خواهد بود:
P_Id | LastName | FirstName | Address | City |
---|---|---|---|---|
2 | Svendson | Tove | Borgvn 23 | Sandnes |
- نوشته شده توسط مهندس تمیزی
- بازدید: 25122
دیدگاهها
سلام.خسته نباشید
اولویت بین and و or چجوریه؟از چپ به راسته یا اینکه باید با پرانتز مشخص بشه؟
مثلا "افرادی که متاهلن یا اگر متاهلن نیسن سنشون بالای 25باشه و اهل تهران باشن"
با سلام و تشکر
معمولا به این صورت هست که اگر چند شرط در کنار هم با علامت AND یا OR بیان، یکی از اتفاقات زیر میفته.
- در شرط AND در صورتی که همه درست باشن، شرط نهایی درست میشه و در صورتی که یکی از شروط مقدار NULL بده، این شرط غیر درست میشه. با توجه به این منطق ابتدا شرط اول چک میشه، اگه درست بود، شرط دوم هم چک میشه. ولی اگه شرط اول درست نبود، دیگه سراغ شرط دوم نمیره.
کد زیر رو ببینید:
SELECT * FROM users WHERE married = 0 && age > 25 && city = 'tehran';
در شراط بالا ابتدا کاربرانی رو چک میکنه که متأهل نباشن. وقتی کسی متأهل باشه،دیگه به باقی شروط کاری نداره، چون شرط متأهل بودن جز شروط ما نیست، بنابراین دیگه سراغ شروط بعدی نمیره و رکورد مذکور رو از نتیجه حذف میکنه.
مفهوم AND به این صورت هست. برای OR مشابه همین منطق هست.
اگر با مفاهیم AND و OR آشنا باشید، مشکلی در درکش نخواهید داشت.