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

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


MySQLでカスタム並べ替えを実行するには、ORDER BY FIELD()を使用します。まずテーブルを作成しましょう-

mysql> create table DemoTable
   -> (
   -> Id int
   -> );
Query OK, 0 rows affected (0.82 sec)

挿入コマンドを使用して、テーブルにいくつかのレコードを挿入します:

mysql> insert into DemoTable values(101);
Query OK, 1 row affected (0.23 sec)
mysql> insert into DemoTable values(103);
Query OK, 1 row affected (0.11 sec)
mysql> insert into DemoTable values(102);
Query OK, 1 row affected (0.08 sec)
mysql> insert into DemoTable values(105);
Query OK, 1 row affected (0.14 sec)

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

mysql> select *from DemoTable;

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

+------+
|  Id  |
+------+
|  101 |
|  103 |
|  102 |
|  105 |
+------+
4 rows in set (0.00 sec)

カスタムソートを実行するためのクエリは次のとおりです-

mysql> select *from DemoTable order by field(Id,102,105,101,103);

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

+------+
| Id   |
+------+
|  102 |
|  105 |
|  101 |
|  103 |
+------+
4 rows in set (0.00 sec)

  1. カスタムのYESまたはNOメッセージを表示するMySQLIF()

    まずテーブルを作成しましょう- mysql> create table DemoTable1850      (      OrderStatus varchar(20)      ); Query OK, 0 rows affected (0.00 sec) 挿入コマンド-を使用して、テーブルにいくつかのレコードを挿入します mysql> insert into DemoTable1850 values('Yes'); Query OK, 1 row affected (0

  2. カスタム変数でMySQLselectを設定する

    まずテーブルを作成しましょう- mysql> create table DemoTable2013    -> (    -> Name varchar(20)    -> ); Query OK, 0 rows affected (0.63 sec) 挿入コマンド-を使用して、テーブルにいくつかのレコードを挿入します mysql> insert into DemoTable2013 values('Chris'); Query OK, 1 row affected (0.13 sec)