बूलियन ORDER BY के साथ प्राथमिकता सॉर्टिंग
विशिष्ट मानों को परिणामों में सबसे ऊपर लाने के लिए:
SELECT * FROM yourTableName ORDER BY yourColumnName = 'priorityValue' DESC, yourIdColumnName;
column = 'value' बूलियन एक्सप्रेशन है (TRUE=1, FALSE=0)। DESC से TRUE (1) पहले आता है।
उदाहरण: टेबल बनाना और डेटा डालना
mysql> CREATE TABLE SortCertainValues (
-> Id INT NOT NULL AUTO_INCREMENT,
-> Name VARCHAR(20),
-> CountryName VARCHAR(10),
-> PRIMARY KEY(Id)
-> );
mysql> INSERT INTO SortCertainValues(Name, CountryName)
-> VALUES('Adam', 'US'),('John', 'UK'),('Bob', 'US'),('Carol', 'Denmark'),
-> ('Sam', 'US'),('David', 'France'),('Maxwell', 'AUS'),('Kevin', 'NewZealand');
'US' को टॉप पर सॉर्ट करना
mysql> SELECT * FROM SortCertainValues
-> ORDER BY CountryName = 'US' DESC, Id;
आउटपुट:
+----+---------+-------------+ | Id | Name | CountryName | +----+---------+-------------+ | 1 | Adam | US | | 3 | Bob | US | | 5 | Sam | US | | 2 | John | UK | | 4 | Carol | Denmark | | 6 | David | France | | 7 | Maxwell | AUS | | 9 | Kevin | NewZealand | +----+---------+-------------+
सभी 'US' पहले (Id क्रम में), फिर बाकी देश Id क्रम में।
एकाधिक प्राथमिकताओं के लिए:
ORDER BY
(CountryName = 'US') DESC,
(CountryName = 'UK') DESC,
Id;