পদ্ধতি
ORDER BY (FirstName='Robert') DESC, RAND() দিয়ে 'Robert' কে সবার উপরে আনা, বাকিগুলো র্যান্ডম করে LIMIT 3 নিয়ে আনা।
সারণি ও ডেটা
mysql> create table DemoTable1426 (FirstName varchar(20));
mysql> insert into DemoTable1426 values('John'),('Adam'),('Robert'),('David'),('Sam');
কোয়েরি
mysql> select * from DemoTable1426 order by (FirstName='Robert') desc, RAND() limit 3;
ফলাফল (নমুনা)
+-----------+ | FirstName | +-----------+ | Robert | | Adam | | David | +-----------+
ব্যাখ্যা
(FirstName='Robert')— বুলিয়ান এক্সপ্রেশন, TRUE=1, FALSE=0DESC— ১ (TRUE) আগে আসে, তাই 'Robert' টপে থাকেRAND()— বাকিগুলো র্যান্ডমলি সর্ট করেLIMIT 3— শুধু ৩টি সারি নেয়
সতর্কতা: RAND() বড় টেবিলে ধীর (ফুল টেবিল স্ক্যান)। প্রোডাকশনে বিকল্প পদ্ধতি ব্যবহার করুন।