عملگر IN در MySQL

93

0

عملگر in در mysql

در پست های گذشته در رابطه با عملگرهای منطقی در MySQL صحبت کردیم اما بعضی مواقع در شرط خود بیشتر از یک OR استفاده کنیم. ممکن است استفاده از چند OR در یک شرط کدمون رو ناخوانا و نامرتب نمایش بده؛ برای راحتی و خوانایی بیشتر از عملگر IN در MySQL استفاده میکنیم.

در ادامه با ذکر مثال بیشتر با این مبحث آشنا خواهید شد.

عملگر IN در MySQL

با توجه به جدول نمایش داده شده در زیر که لیستی از شعب اخذ رای میباشد میخواهیم اطلاعات استان های تهران، اردبیل و اصفهان را پیدا کنیم.

لیست شعب رای
لیست شعبه‌ها

به دو شیوه می‌توان به این اطلاعات دست یافت. روش اول با استفاده از عملگر OR؛

SELECT *
FROM shobe
WHERE ShobeName = 'ARDABIL' OR ShobeName = 'TEHRAN' OR ShobeName = 'ESFAHAN'

خروجی روش اول به اینصورت خواهد بود؛

خروجی روش اول
خروجی روش اول با استفاده از عملگر OR

همانطور که در جدول بالا مشاهده می‌کنید؛ در خروجی اطلاعات شعبی که در یکی از شهرهای اردبیل،تهران یا اصفهان هستند نمایش داده شده است.

شاید کد نوشته شده در بالا خوانا نباشد و یا کد طولانی برای این جست و جو باشد.

در روش دوم از عملگر IN استفاده می‌کنیم.

SELECT *
FROM shobe
WHERE ShobeName IN ('TEHRAN' , 'ESFAHAN', 'ARDABIL')

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

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

تمرین:اطلاعات شعبه هایی که در استان های بوشهر، شیراز و همدان باشند و کدهای شعبه ی آن ها بیشتر از 3 باشد.

 

حال فرض کنید تعداد داده های ما زیاد بوده و اطلاعات همه‌ی شعبه‌ها بجز سه شهر تهران، اردبیل و اصفهان مورد نیاز است، یعنی دقیقا مخالف کد بالا رو لازم است بنویسیم.

برای نوشتن همچین کدی تنها لازم است از کلمه‌ی NOT‌ قبل از کلمه‌ی کلیدی IN برای منفی کردن آن استفاده کنیم. به کد زیر توجه کنید.

SELECT *
FROM shobe
WHERE ShobeName NOT IN ('TEHRAN' , 'ESFAHAN', 'ARDABIL')

خروجی کد بالا دقیقا متضاد خروجی قبلی است که من در زیر آوردم.

اطلاعات شعب
استفاده از کلمه کلیدی NOT

 

چنانچه ایراد ، ابهام و یا اشکالی داشتید در بخش نظرات با ما در میان بگذارید

مهندس طهماس زاده

مهندس نرم افزار

1سال در کنار تاتژن

اشتراک
اطلاع از
guest
0 Comments
Inline Feedbacks
View all comments
ارسال تیکت
0
Would love your thoughts, please comment.x
()
x