কম্পিউটার

MySQL রেকর্ডগুলি এলোমেলোভাবে অর্ডার করুন এবং আরোহী ক্রমে নাম প্রদর্শন করুন


আপনি এলোমেলোভাবে অর্ডার করতে সাবকুয়েরি ব্যবহার করতে পারেন এবং নামটি ক্রমানুসারে প্রদর্শন করতে পারেন। র্যান্ড() র্যান্ডম এর জন্য ব্যবহার করা হয়, যেখানে ORDER BY ব্যবহার করা হয় আরোহী ক্রমে নাম রেকর্ড প্রদর্শন করতে। সিনট্যাক্স নিম্নরূপ -

select *from
(
   select *from yourTableName order by rand() limit anyIntegerValue;
) anyVariableName
order by yourColumnName;

উপরের ধারণাটি বুঝতে, আসুন একটি টেবিল তৈরি করি। আমাদের কাছে নাম হিসাবে বিক্রয় হিসাবে একটি আইডি আছে, যা আমরা আরোহী ক্রমে চাই। একটি টেবিল তৈরি করার প্রশ্নটি নিম্নরূপ -

mysql> create table OrderByRandName
   −> (
   −> Id int,
   −> Name varchar(100)
   −> );
Query OK, 0 rows affected (0.96 sec)

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

mysql> insert into OrderByRandName values(100,'John');
Query OK, 1 row affected (0.18 sec)

mysql> insert into OrderByRandName values(101,'Bob');
Query OK, 1 row affected (0.11 sec)

mysql> insert into OrderByRandName values(102,'Johnson');
Query OK, 1 row affected (0.19 sec)

mysql> insert into OrderByRandName values(103,'David');
Query OK, 1 row affected (0.22 sec)

mysql> insert into OrderByRandName values(104,'Smith');
Query OK, 1 row affected (0.17 sec)

mysql> insert into OrderByRandName values(105,'Taylor');
Query OK, 1 row affected (0.20 sec)

mysql> insert into OrderByRandName values(106,'Sam');
Query OK, 1 row affected (0.12 sec)

mysql> insert into OrderByRandName values(107,'Robert');
Query OK, 1 row affected (0.22 sec)

mysql> insert into OrderByRandName values(108,'Michael');
Query OK, 1 row affected (0.16 sec)

mysql> insert into OrderByRandName values(109,'Mark');
Query OK, 1 row affected (0.17 sec)

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

mysql> select *from OrderByRandName;

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

+------+---------+
| Id   | Name    |
+------+---------+
|  100 | John    |
|  101 | Bob     |
|  102 | Johnson |
|  103 | David   |
|  104 | Smith   |
|  105 | Taylor  |
|  106 | Sam     |
|  107 | Robert  |
|  108 | Michael |
|  109 | Mark    |
+------+---------+
10 rows in set (0.00 sec)

এখানে র‍্যান্ড() এবং ডিসপ্লে নাম দ্বারা ক্রমবর্ধমান −

ক্রমানুসারে কোয়েরি রয়েছে
mysql> select *from
   −> (
   −> select *from OrderByRandName order by rand() limit 10
   −> )tbl1
   −> order by Name;

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

+------+---------+
| Id   | Name    |
+------+---------+
|  101 | Bob     |
|  103 | David   |
|  100 | John    |
|  102 | Johnson |
|  109 | Mark    |
|  108 | Michael |
|  107 | Robert  |
|  106 | Sam     |
|  104 | Smith   |
|  105 | Taylor  |
+------+---------+
10 rows in set (0.39 sec)

  1. রেকর্ড অর্ডার করার জন্য মাইএসকিউএল কোয়েরি কিন্তু একটি নির্দিষ্ট নাম ঠিক করে এবং বাকি মানগুলি (শুধুমাত্র কিছু) র্যান্ডম প্রদর্শন করে

  2. একটি একক ক্ষেত্র দ্বারা অর্ডার করুন এবং MySQL এর সাথে একই ক্রমে বাকি রেকর্ডগুলি প্রদর্শন করুন৷

  3. রেকর্ড অর্ডার করুন এবং MySQL এ n সারি মুছে দিন

  4. একটি নির্দিষ্ট কলাম x দ্বারা MySQL ক্রম এবং আরোহী ক্রমে অবশিষ্ট মান প্রদর্শন করুন