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

MySQLの「IN」クエリで順序を維持していますか?


フィールドコマンドを使用して、MySQLINクエリの順序を維持できます。構文は次のとおりです-

select *from yourTableName anyVariableName where anyVariableName.yourColumnName in(value1,value2,......N)
order by field(anyVariableName.yourColumnName,value1,value2,......N);
>

上記の構文を実装するために、テーブルを作成しましょう-

mysql> create table OrderInDemo
   −> (
      −> Id int,
      −> Name varchar(100),
      −> Age int
   −> );
Query OK, 0 rows affected (1.24 sec)

次に、テーブルにいくつかのレコードを挿入しましょう。レコードを挿入するためのクエリは次のとおりです-

mysql> insert into OrderInDemo values(90,'David',23);
Query OK, 1 row affected (0.10 sec)

mysql> insert into OrderInDemo values(9,'Sam',24);
Query OK, 1 row affected (0.59 sec)

mysql> insert into OrderInDemo values(10,'Carol',19);
Query OK, 1 row affected (0.25 sec)

mysql> insert into OrderInDemo values(1,'John',26);
Query OK, 1 row affected (0.42 sec)

mysql> insert into OrderInDemo values(3,'Johnson',25);
Query OK, 1 row affected (0.18 sec)

mysql> insert into OrderInDemo values(2,'Ramit',20);
Query OK, 1 row affected (0.18 sec)

selectステートメントを使用して、すべてのレコードを表示します。クエリは次のとおりです-

mysql> select *from OrderInDemo;
以下は出力です-

+------+---------+------+
| Id   | Name    | Age  |
+------+---------+------+
|   90 | David   |   23 |
|    9 | Sam     |   24 |
|   10 | Carol   |   19 |
|    1 | John    |   26 |
|    3 | Johnson |   25 |
|    2 | Ramit   |   20 |
+------+---------+------+
6 rows in set (0.00 sec)

MySQL INクエリで順序を維持するために、最初に説明した構文を実装します。クエリは次のとおりです-

mysql> select *from OrderInDemo OD where OD.Id in(10,1,3)
   −> order by field(OD.Id,10,1,3);

以下は、クエリで提供された順序で順序付けられた結果を表示する出力です-

+------+---------+------+
| Id   | Name    | Age  |
+------+---------+------+
|   10 | Carol   |   19 |
|    1 | John    |   26 |
|    3 | Johnson |   25 |
+------+---------+------+
3 rows in set (0.00 sec)

  1. 「order」という名前のテーブルでのMySQLクエリエラー?

    注文は予約語です。予約語を引き続き使用するには、列名の前後にバッククォートを使用する必要があります。まずテーブルを作成しましょう- mysql> create table `order`    -> (    -> StudentId int    -> ); Query OK, 0 rows affected (1.78 sec) 挿入コマンド-を使用して、テーブルにいくつかのレコードを挿入します mysql> insert into `order` values(101); Query OK, 1

  2. 数値のユーザー定義変数を使用したMySQLORDERBY?

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