কম্পিউটার

তারিখ কলাম এবং পূর্ণসংখ্যা কলাম দ্বারা MySQL ক্রম, কিন্তু পূর্ণসংখ্যা কলামের ক্রম নিয়ম উল্লেখ করুন? এটা কি সম্ভব?


আপনি ORDER BY CASE স্টেটমেন্টের সাহায্যে এটি অর্জন করতে পারেন। সিনট্যাক্স নিম্নরূপ -

SELECT *FROM yourTableName ORDER BY CASE yourIntegerColumnName1 WHEN 2 THEN 1 ELSE 0 END DESC ,yourDateColumnName ASC;

উপরের সিনট্যাক্স বুঝতে, আসুন একটি টেবিল তৈরি করি। একটি টেবিল তৈরি করার প্রশ্নটি নিম্নরূপ -

mysql> create table OrderByCaseDemo
   -> (
   -> Id int NOT NULL AUTO_INCREMENT,
   -> GroupId int,
   -> ArrivalDate date,
   -> PRIMARY KEY(Id)
   -> );
Query OK, 0 rows affected (1.57 sec)

সন্নিবেশ কমান্ড ব্যবহার করে টেবিলে কিছু রেকর্ড সন্নিবেশ করান। প্রশ্নটি নিম্নরূপ -

mysql> insert into OrderByCaseDemo(GroupId,ArrivalDate) values(2,'19/02/06');
Query OK, 1 row affected (0.13 sec)
mysql> insert into OrderByCaseDemo(GroupId,ArrivalDate) values(1,'20/02/06');
Query OK, 1 row affected (0.20 sec)
mysql> insert into OrderByCaseDemo(GroupId,ArrivalDate) values(3,'18/02/06');
Query OK, 1 row affected (0.12 sec)
mysql> insert into OrderByCaseDemo(GroupId,ArrivalDate) values(3,'21/02/06');
Query OK, 1 row affected (0.23 sec)
mysql> insert into OrderByCaseDemo(GroupId,ArrivalDate) values(2,'17/02/06');
Query OK, 1 row affected (0.17 sec)
mysql> insert into OrderByCaseDemo(GroupId,ArrivalDate) values(1,'22/02/06');
Query OK, 1 row affected (0.14 sec)

একটি নির্বাচন বিবৃতি ব্যবহার করে টেবিল থেকে সমস্ত রেকর্ড প্রদর্শন করুন। প্রশ্নটি নিম্নরূপ -

mysql> select *from OrderByCaseDemo;

নিচের আউটপুট −

+----+---------+-------------+
| Id | GroupId | ArrivalDate |
+----+---------+-------------+
|  1 |       2 | 2019-02-06  |
|  2 |       1 | 2020-02-06  |
|  3 |       3 | 2018-02-06  |
|  4 |       3 | 2021-02-06  |
|  5 |       2 | 2017-02-06  |
|  6 |       1 | 2022-02-06  | 
+----+---------+-------------+
6 rows in set (0.00 sec)

তারিখ কলামের পাশাপাশি একটি পূর্ণসংখ্যা কলাম দ্বারা অর্ডার করার জন্য এখানে ক্যোয়ারী রয়েছে −

mysql> select *from OrderByCaseDemo order by case GroupId when 2 then 1 else 0 end desc,ArrivalDate asc;

নিচের আউটপুট −

+----+---------+-------------+
| Id | GroupId | ArrivalDate |
+----+---------+-------------+
|  5 |       2 | 2017-02-06  |
|  1 |       2 | 2019-02-06  |
|  3 |       3 | 2018-02-06  |
|  2 |       1 | 2020-02-06  |
|  4 |       3 | 2021-02-06  |
|  6 |       1 | 2022-02-06  |
+----+---------+-------------+
6 rows in set (0.00 sec)

  1. কাস্টম অর্ডারের জন্য `user_id` IN (1,2,3) এবং `নাম` দ্বারা অর্ডার করার জন্য MySQL কোয়েরি

  2. বর্তমান দিন এবং মাস অনুসারে অর্ডার করতে MySQL প্রশ্ন?

  3. একটি তারিখ কলাম NULL করতে MySQL ক্যোয়ারী?

  4. কিভাবে MySQL-এ শর্ত সহ ক্যোয়ারী অর্ডার এবং নির্বাচন করবেন?