MySQLの最後の3文字で注文しますか?
ORDER BY RIGHT()関数を使用して、MySQLの最後の3文字で並べ替えることができます。構文は次のとおりです-
SELECT *FROM yourTableName ORDER BY RIGHT(yourColumnName,3) yourSortingOrder;
「yourSortingOrder」をASCまたはDESCに置き換えるだけで、昇順または降順をそれぞれ設定できます。
上記の構文を理解するために、テーブルを作成しましょう。テーブルを作成するためのクエリは次のとおりです-
mysql> create table OrderByLast3Chars -> ( -> EmployeeId int NOT NULL AUTO_INCREMENT, -> EmployeeName varchar(20), -> EmployeeAge int, -> PRIMARY KEY(EmployeeId) -> ); Query OK, 0 rows affected (0.56 sec)
挿入コマンドを使用して、テーブルにいくつかのレコードを挿入します。クエリは次のとおりです-
mysql> insert into OrderByLast3Chars(EmployeeName,EmployeeAge) values('Carol_901',24); Query OK, 1 row affected (0.14 sec) mysql> insert into OrderByLast3Chars(EmployeeName,EmployeeAge) values('Bob_101',21); Query OK, 1 row affected (0.19 sec) mysql> insert into OrderByLast3Chars(EmployeeName,EmployeeAge) values('Sam_107',22); Query OK, 1 row affected (0.20 sec) mysql> insert into OrderByLast3Chars(EmployeeName,EmployeeAge) values('Mile_677',26); Query OK, 1 row affected (0.19 sec) mysql> insert into OrderByLast3Chars(EmployeeName,EmployeeAge) values('John_978',27); Query OK, 1 row affected (0.75 sec) mysql> insert into OrderByLast3Chars(EmployeeName,EmployeeAge) values('David_876',29); Query OK, 1 row affected (0.28 sec)
selectステートメントを使用して、テーブルのすべてのレコードを表示します。クエリは次のとおりです-
mysql> select *from OrderByLast3Chars;
以下は出力です-
+------------+--------------+-------------+ | EmployeeId | EmployeeName | EmployeeAge | +------------+--------------+-------------+ | 1 | Carol_901 | 24 | | 2 | Bob_101 | 21 | | 3 | Sam_107 | 22 | | 4 | Mile_677 | 26 | | 5 | John_978 | 27 | | 6 | David_876 | 29 | +------------+--------------+-------------+ 6 rows in set (0.00 sec)
これが最後の3文字で並べ替えるクエリです。
ケース1 −結果を昇順で取得します。
クエリは次のとおりです-
mysql> select *from OrderByLast3Chars -> order by RIGHT(EmployeeName,3) asc;
以下は出力です-
+------------+--------------+-------------+ | EmployeeId | EmployeeName | EmployeeAge | +------------+--------------+-------------+ | 1 | Carol_901 | 24 | | 2 | Bob_101 | 21 | | 3 | Sam_107 | 22 | | 4 | Mile_677 | 26 | | 5 | John_978 | 27 | | 6 | David_876 | 29 | +------------+--------------+-------------+ 6 rows in set (0.00 sec)
ケース2 −結果を降順で取得します。クエリは次のとおりです-
mysql> select *from OrderByLast3Chars -> order by RIGHT(EmployeeName,3) desc;
以下は出力です-
+------------+--------------+-------------+ | EmployeeId | EmployeeName | EmployeeAge | +------------+--------------+-------------+ | 5 | John_978 | 27 | | 1 | Carol_901 | 24 | | 6 | David_876 | 29 | | 4 | Mile_677 | 26 | | 3 | Sam_107 | 22 | | 2 | Bob_101 | 21 | +------------+--------------+-------------+ 6 rows in set (0.00 sec)
-
NULL値で並べ替えるMySQLクエリ
まずテーブルを作成しましょう- mysql> create table DemoTable707 ( StudentId int NOT NULL AUTO_INCREMENT PRIMARY KEY, StudentFirstName varchar(100), StudentMarks int ); Query OK, 0 rows affected (0.59 sec) 挿入コマンド-を使用して、テーブルにいくつかのレコードを挿入します mysql> insert into DemoTable70
-
MySQLクエリを複数のIDで並べ替えますか?
これには、ORDER BY FIELD()を使用します。まずテーブルを作成しましょう- mysql> create table DemoTable( ClientId varchar(40), ClientName varchar(40) ); Query OK, 0 rows affected (0.55 sec) 挿入コマンド-を使用して、テーブルにいくつかのレコードを挿入します mysql> insert into DemoTable values('987_John','John'); Q