কম্পিউটার টিউটোরিয়াল

MySQL-এ WHERE 1=0 কেন ব্যবহার করা হয়? (খালি ফলাফল ফেরাতে)


MySQL-এ WHERE 1=0: কোয়েরি থেকে কোনো সারো ফেরাতে না দেওয়ার ট্রিক

WHERE 1=0 একটি কন্ডিশন যা সবসময় FALSE। এটি কোয়েরিতে ব্যবহার করলে কোনো সারো ম্যাচ করে না এবং খালি রেজাল্ট সেট (Empty set) ফেরত দেয়।

সিনট্যাক্স

SELECT * FROM yourTableName WHERE 1=0;

ব্যবহারের কারণ

  • টেবিলের কাঠামো (Schema) জানতে চাইলে ডেটা ছাড়া: SELECT * FROM table WHERE 1=0 (কিছু ORM/টুল এই প্যাটার্ন ব্যবহার করে)
  • ডাইনামিক SQL-এ কন্ডিশনালি WHERE ক্লজ বিল্ড করার সময় বেস কেস হিসেবে
  • টেবিল লক বা ট্রানজ্যাকশন টেস্ট করতে ডেটা ছুঁয়ে না

উদাহরণ

টেবিল তৈরি ও ডেটা ইনসার্ট

mysql> CREATE TABLE ConditionDemo (Id INT NOT NULL AUTO_INCREMENT, Name VARCHAR(10), PRIMARY KEY(Id));
mysql> INSERT INTO ConditionDemo(Name) VALUES('Larry'), ('Sam'), ('Mike'), ('Carol'), ('John'), ('Bob');

সাধারণ সিলেক্ট

mysql> SELECT * FROM ConditionDemo;
+----+-------+
| Id | Name  |
+----+-------+
| 1  | Larry |
| 2  | Sam   |
| 3  | Mike  |
| 4  | Carol |
| 5  | John  |
| 6  | Bob   |
+----+-------+

WHERE 1=0 দিয়ে সিলেক্ট

mysql> SELECT * FROM ConditionDemo WHERE 1=0;
Empty set (0.00 sec)

কোনো সারো ফেরত দেয়নি, কিন্তু কলামের নাম, টাইপ ইত্যাদি মেটাডেটা পাওয়া যায়।

  1. MySQL-এ একই কোয়েরিতে WHERE, AND ও OR একসাথে ব্যবহার

  2. MySQL-এ IN() অপারেটর ব্যবহার করে একাধিক WHERE শর্তimple করা

  3. MySQL-এ MOD (%) অপারেটর ব্যবহার করে ৪ দিয়ে বিভাজ্য ID খুঁজে বের করা

  4. MySQL কোয়েরি ডেসিমেল কলাম থেকে হোল নাম্বার (যেমন 12.00, 35.00) বের করার জন্য