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

MySQL-এ WHERE ক্লজে COUNT(*) ব্যবহার করা সাবকোয়েরি ছাড়া (বা সহ)

MySQL-এ WHERE ক্লজে পুরো টেবিলের রো কাউন্ট (COUNT(*)) ব্যবহার করতে সাবকোয়েরি লাগে, কারণ অ্যাগ리게েট ফাংশন সরাসরি WHERE-তে ব্যবহার করা যায় না।

সিনট্যাক্স

SELECT yourColumnName1, yourColumnName2, ...
FROM yourTableName
WHERE (SELECT COUNT(*) FROM yourTableName) = 2;

উদাহরণ

টেবিল তৈরি:

mysql> CREATE TABLE CountWithSubqueryDemo (
    -> Id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    -> EmployeeName VARCHAR(20)
    -> );

৯টি রেকর্ড ইনসার্ট (কাউন্ট ৯):

mysql> SELECT * FROM CountWithSubqueryDemo;
+----+--------------+
| Id | EmployeeName |
+----+--------------+
| 1  | John         |
| 2  | NULL         |
| 3  | Carol        |
| 4  |              |
| 5  | Bob          |
| 6  | NULL         |
| 7  | Sam          |
| 8  | Mike         |
| 9  | James        |
+----+--------------+

কাউন্ট = ২ চেক (ফলাফল খালি):

mysql> SELECT Id, EmployeeName FROM CountWithSubqueryDemo
    -> WHERE (SELECT COUNT(*) FROM CountWithSubqueryDemo) = 2;
Empty set (0.03 sec)

টেবিল টরানকেট করে ২টি রেকর্ড ইনসার্ট:

mysql> TRUNCATE TABLE CountWithSubqueryDemo;
mysql> INSERT INTO CountWithSubqueryDemo(EmployeeName) VALUES('James'), (NULL);

এখন কাউন্ট = ২ (ফলাফল পাওয়া যাবে):

mysql> SELECT Id, EmployeeName FROM CountWithSubqueryDemo
    -> WHERE (SELECT COUNT(*) FROM CountWithSubqueryDemo) = 2;
+----+--------------+
| Id | EmployeeName |
+----+--------------+
| 1  | James        |
| 2  | NULL         |
+----+--------------+

ব্যাখ্যা: সাবকোয়েরি (SELECT COUNT(*) FROM table) প্রতিটি রোয়ের জন্য একবার এক্সিকিউট হয় (অপ্টিমাইজার ক্যাশ করতে পারে)। এটি কন্ডিশনাল ফিল্টারের জন্য কাজে লাগে, যেমন "টেবিলে শুধু ২টি রো থাকলে সিলেক্ট কর"।

  1. MySQL-এ COUNT() এর ভিতরে CASE শর্ত ব্যবহার করে গণনা করা

  2. MySQL VIEW-এ WHERE ক্লজ ব্যবহার করা

  3. MySQL-এ আলাদা রেকর্ড থেকে গণনা একই সারিতে প্রদর্শন করা

  4. MySQL에서 컬럼 값별 행 개수 세기 (GROUP BY + COUNT)