使用ORDER BYIF()可以按特定顺序排列数据。以下是语法-select*fromyourTableNameORDERBYIF(yourColumnName=yourValue1OR
yourColumnName=yourValue2ORyourColumnName=yourValue3,yourColumnName,
~yourColumnName)ASC;
让我们首先创建一个表-mysql>createtablearrangeDataInSpecificOrder
->(
->StudentIdint,
->StudentNamevarchar(20)
->);
以下是使用insert命令在表中插入一些记录的查询-mysql>insertintoarrangeDataInSpecificOrdervalues(10,'Larry');
mysql>insertintoarrangeDataInSpecificOrdervalues(15,'Mike');
mysql>insertintoarrangeDataInSpecificOrdervalues(100,'Sam');
mysql>insertintoarrangeDataInSpecificOrdervalues(70,'Carol');
mysql>insertintoarrangeDataInSpecificOrdervalues(90,'Bob');
mysql>insertintoarrangeDataInSpecificOrdervalues(300,'David');
以下是使用select语句显示表中所有记录的查询-mysql>select*fromarrangeDataInSpecificOrder;
这将产生以下输出-+-----------+-------------+
|StudentId|StudentName|
+-----------+-------------+
|10|Larry|
|15|Mike|
|100|Sam|
|70|Carol|
|90|Bob|
|300|David|
+-----------+-------------+
6rowsinset(0.00sec)
这是按特定顺序排列数据的查询-mysql>select*fromarrangeDataInSpecificOrderORDERBYIF(StudentId=300OR
StudentId=100ORStudentId=10,StudentId,~StudentId)ASC;
这将产生以下输出-+-----------+-------------+
|StudentId|StudentName|
+-----------+-------------+
|10|Larry|
|100|Sam|
|300|David|
|90|Bob|
|70|Carol|
|15|Mike|
+-----------+-------------+
6rowsinset(0.00sec)