MySQL
 Computer >> コンピューター >  >> プログラミング >> MySQL

MySQLでカスタムソート順を実装する


MySQLでカスタムの並べ替え順序を実装するには、ORDER BY FIELD()を使用する必要があります。まずテーブルを作成しましょう-

mysql> create table DemoTable
   -> (
   -> Designation varchar(100)
   -> );
Query OK, 0 rows affected (1.65 sec)

挿入コマンド-

を使用して、テーブルにいくつかのレコードを挿入します
mysql> insert into DemoTable values('Software Engineer');
Query OK, 1 row affected (0.14 sec)
mysql> insert into DemoTable values('Associate Software Engineer');
Query OK, 1 row affected (0.25 sec)
mysql> insert into DemoTable values('Software Development Engineer');
Query OK, 1 row affected (0.19 sec)
mysql> insert into DemoTable values('Product Manager');
Query OK, 1 row affected (0.17 sec)
>

selectステートメントを使用してテーブルのすべてのレコードを表示する-

mysql> select *from DemoTable;

これにより、次の出力が生成されます-

+-------------------------------+
| Designation                   |
+-------------------------------+
| Software Engineer             |
| Associate Software Engineer   |
| Software Development Engineer |
| Product Manager               |
+-------------------------------+
4 rows in set (0.00 sec)

以下は、MySQLでカスタムソート順を実装するためのクエリです-

mysql> select *from DemoTable
   -> order by
field(Designation,'Associate Software Engineer','Software Engineer','Software Development Engineer','Product Manager');

これにより、次の出力が生成されます-

+-------------------------------+
| Designation                   |
+-------------------------------+
| Associate Software Engineer   |
| Software Engineer             |
| Software Development Engineer |
| Product Manager               |
+-------------------------------+
4 rows in set (0.02 sec)

  1. MySQLを使用してソート順に集計関数を呼び出す

    このためには、ORDER BY句とともにGROUP_CONCAT()を使用します。まずテーブルを作成しましょう- mysql> create table DemoTable1588    -> (    -> StudentId int,    -> StudentFirstName varchar(20),    -> StudentMarks int    -> ); Query OK, 0 rows affected (0.49 sec) 挿入コマンド

  2. 文字列をカスタム順序で並べ替えるPythonプログラム

    1つの英数字の文字列があるとします。次の条件に基づいて並べ替える必要があります ソートされたすべての小文字は大文字の前に配置されます。 ソートされた大文字はすべて数字の前に配置されます。 ソートされたすべての奇数桁は、ソートされた偶数桁の前に配置されます。 したがって、入力がs =HeLlo1234のような場合、出力はeloHL1324になります。 これを解決するには、次の手順に従います- 関数f()を定義します。これにはcがかかります コード:=0 cが大文字の場合、 コード:=10 ^ 3 それ以外の場合、cが数字の場合、 コード:=10 ^ 6