این پست با مسیر متخصص MySQL مرتبط است. مشاهده مسیر (Roadmap)
در پست های گذشته در رابطه با عملگرهای منطقی در MySQL صحبت کردیم. اما بعضی مواقع در شرط خود بیشتر از یک OR استفاده کنیم. ممکن است استفاده از چند OR در یک شرط کدمان را ناخوانا و نامرتب نمایش بدهد؛ برای راحتی و خوانایی بیشتر از عملگر IN در MySQL استفاده می کنیم. در ادامه با ذکر مثال بیشتر با این مبحث آشنا خواهید شد.
عملگر IN در MySQL
با توجه به جدول نمایش داده شده در زیر که لیستی از شعب اخذ رای می باشد، می خواهیم اطلاعات استان های تهران، اردبیل و اصفهان را پیدا کنیم.
به دو شیوه میتوان به این اطلاعات دست یافت. روش اول با استفاده از عملگر OR؛
SELECT * FROM shobe WHERE ShobeName = 'ARDABIL' OR ShobeName = 'TEHRAN' OR ShobeName = 'ESFAHAN'
خروجی روش اول به اینصورت خواهد بود:
همانطور که در جدول بالا مشاهده میکنید. در خروجی اطلاعات شعبی که در یکی از شهرهای اردبیل، تهران یا اصفهان هستند نمایش داده شده است.
شاید کد نوشته شده در بالا خوانا نباشد و یا کد طولانی برای این جست و جو باشد.
در روش دوم از عملگر IN استفاده میکنیم.
SELECT * FROM shobe WHERE ShobeName IN ('TEHRAN' , 'ESFAHAN', 'ARDABIL')
توجه داشته باشید که در کد بالا رشته های نوشته شده حتما باید داخل پرانتز قرار بگیرند.
اگر کد بالا را هم بزنیم خروجی ما دوباره همان خروجی قبل است با این تفاوت که در روش دوم کد ما خوانا تر و بهتر است.
تمرین: اطلاعات شعبه هایی که در استان های بوشهر، شیراز و همدان باشند و کدهای شعبه ی آن ها بیشتر از 3 باشد.
حال فرض کنید تعداد داده های ما زیاد بوده و اطلاعات همهی شعبهها بجز سه شهر تهران، اردبیل و اصفهان مورد نیاز است؛ یعنی دقیقا مخالف کد بالا را لازم است بنویسیم.
برای نوشتن همچین کدی تنها لازم است از کلمهی NOT قبل از کلمهی کلیدی IN برای منفی کردن آن استفاده کنیم. به کد زیر توجه کنید.
SELECT * FROM shobe WHERE ShobeName NOT IN ('TEHRAN' , 'ESFAHAN', 'ARDABIL')
خروجی کد بالا دقیقا متضاد خروجی قبلی است که من در زیر آوردم.
به پایان آموزش “عملگر IN در MySQL” رسیدیم. چنانچه ایراد ، ابهام و یا اشکالی داشتید در بخش نظرات با ما در میان بگذارید.