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)
কোনো সারো ফেরত দেয়নি, কিন্তু কলামের নাম, টাইপ ইত্যাদি মেটাডেটা পাওয়া যায়।