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

MySQL-এ অ্যালিয়াস (Alias) এর ওপর ফিল্টারিং করা

অ্যালিয়াসের ওপর ফিল্টারিং করতে HAVING ক্লজে অ্যালিয়াস ব্যবহার করুন।

প্রথমে একটি টেবিল তৈরি করি:

mysql> create table DemoTable755(
    Id int NOT NULL AUTO_INCREMENT PRIMARY KEY,
    Score1 int,
    Score2 int
);
Query OK, 0 rows affected (0.62 sec)

কিছু রেকর্ড ইনসার্ট করি:

mysql> insert into DemoTable755(Score1,Score2) values(30,23);
Query OK, 1 row affected (0.18 sec)
mysql> insert into DemoTable755(Score1,Score2) values(50,60);
Query OK, 1 row affected (0.13 sec)
mysql> insert into DemoTable755(Score1,Score2) values(89,90);
Query OK, 1 row affected (0.29 sec)
mysql> insert into DemoTable755(Score1,Score2) values(99,99);
Query OK, 1 row affected (0.18 sec)
mysql> insert into DemoTable755(Score1,Score2) values(40,43);
Query OK, 1 row affected (0.14 sec)

সব রেকর্ড দেখি:

mysql> select *from DemoTable755;

আউটপুট:

+----+--------+--------+
| Id | Score1 | Score2 |
+----+--------+--------+
| 1  | 30     | 23     |
| 2  | 50     | 60     |
| 3  | 89     | 90     |
| 4  | 99     | 99     |
| 5  | 40     | 43     |
+----+--------+--------+
5 rows in set (0.00 sec)

অ্যালিয়াস 'Result'-এ ফিল্টারিং করে (Score1+Score2 = 83) রেকর্ড দেখানোর ক্যোয়ারি:

mysql> select Score1+Score2 AS Result, DemoTable755.* from DemoTable755 having Result=83;

আউটপুট:

+--------+----+--------+--------+
| Result | Id | Score1 | Score2 |
+--------+----+--------+--------+
| 83     | 5  | 40     | 43     |
+--------+----+--------+--------+
1 row in set (0.00 sec)

ব্যাখ্যা: WHERE ক্লজে অ্যালিয়াস ব্যবহার করা যায় না (এরর দেবে)। HAVING ক্লজে অ্যালিয়াস ব্যবহার করা যায়। এখানে গ্রুপিং নেই, তবে MySQL HAVING-এ এক্সপ্রেশন অ্যালিয়াস চেনে।

  1. MySQL IN()-এ কেস-ইনসেনসিটিভ SELECT করা

  2. MySQL-এ SELECT INTO ইউজার-ডিফাইনড ভেরিয়েবল

  3. MySQL ORDER BY FIELD()로 사용자 정의 정렬하기

  4. MySQL 저장 프로시저에서 수학 연산(곱셈) 수행하기