عملگر IN در MySQL

منتشر شده در 03 آوریل 2020 آخرین به روز رسانی در 22 فوریه 2021
مهندس طهماس زاده
2084 0
عملگر in در mysql

این پست با مسیر متخصص MySQL مرتبط است. مشاهده مسیر (Roadmap)

در پست های گذشته در رابطه با عملگرهای منطقی در 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

 

به پایان آموزش “عملگر IN در MySQL” رسیدیم. چنانچه ایراد ، ابهام و یا اشکالی داشتید در بخش نظرات با ما در میان بگذارید.