MySQL-এ IN ক্লজে মানগুলোর ক্রম বজায় রাখতে FIELD() ফাংশন ব্যবহার করুন।
সিনট্যাক্স:
select *from yourTableName anyVariableName where anyVariableName.yourColumnName in(value1,value2,......N) order by field(anyVariableName.yourColumnName,value1,value2,......N);
উদাহরণ হিসেবে একটি টেবিল তৈরি করুন:
mysql> create table OrderInDemo -> ( -> Id int, -> Name varchar(100), -> Age int -> ); Query OK, 0 rows affected (1.24 sec)
রেকর্ড ইনসার্ট করুন:
mysql> insert into OrderInDemo values(90,'David',23); ... (৬টি রেকর্ড)
সব রেকর্ড দেখান:
mysql> select *from OrderInDemo;
আউটপুট:
+------+---------+------+ | Id | Name | Age | +------+---------+------+ | 90 | David | 23 | | 9 | Sam | 24 | | 10 | Carol | 19 | | 1 | John | 26 | | 3 | Johnson | 25 | | 2 | Ramit | 20 | +------+---------+------+ 6 rows in set (0.00 sec)
নির্দিষ্ট ক্রমে (১০, ১, ৩) ফলাফল পেতে:
mysql> select *from OrderInDemo OD where OD.Id in(10,1,3) -> order by field(OD.Id,10,1,3);
আউটপুট (কোয়েরিতে দেওয়া ক্রম অনুযায়ী):
+------+---------+------+ | Id | Name | Age | +------+---------+------+ | 10 | Carol | 19 | | 1 | John | 26 | | 3 | Johnson | 25 | +------+---------+------+ 3 rows in set (0.00 sec)