WHERE Id IN(...) দিয়ে নির্দিষ্ট ID-র রেকর্ড বের করা (লুপের বিকল্প)
MySQL-এ প্রোগ্রামিং লুপ (for/while) নেই, কিন্তু IN() ক্লজ ব্যবহার করে নির্দিষ্ট একাধিক ID-র রেকর্ড একসাথে বের করা যায়, যা লুপের মতো ফলাফল দেয়।
টেবিল ও ডেটা
mysql> CREATE TABLE DemoTable (ClientId INT, ClientName VARCHAR(100), ClientAge INT); mysql> INSERT INTO DemoTable VALUES(100,'Chris',34), (101,'Robert',31), (103,'David',33), (104,'Mike',45), (105,'Sam',39);
সব রেকর্ড
+----------+------------+-----------+ | ClientId | ClientName | ClientAge | +----------+------------+-----------+ | 100 | Chris | 34 | | 101 | Robert | 31 | | 103 | David | 33 | | 104 | Mike | 45 | | 105 | Sam | 39 | +----------+------------+-----------+
IN() দিয়ে অল্টারনেট ID (101, 103, 105) ফিল্টার
mysql> SELECT ClientId, ClientName, ClientAge FROM DemoTable WHERE ClientId IN(101,103,105);
+----------+------------+-----------+ | ClientId | ClientName | ClientAge | +----------+------------+-----------+ | 101 | Robert | 31 | | 103 | David | 33 | | 105 | Sam | 39 | +----------+------------+-----------+
ব্যাখ্যা
IN(101,103,105)— এই ID-র যেকোনো একটি ম্যাচ করলে রো সিলেক্ট হয়।- এটি লুপের সমতুল্য:
for id in [101,103,105]: select where ClientId=id। - ID গুলো সিকোয়েন্সে না থাকলেও কাজ করে।
প্যাটার্ন-ভিত্তিক ফিল্টার (MOD দিয়ে)
SELECT * FROM DemoTable WHERE ClientId % 2 = 1; -- বিজোড় ID SELECT * FROM DemoTable WHERE ClientId % 2 = 0; -- জোড় ID