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

MySQL Order By特定の文字列?


FIELD()関数を使用して、必要な文字列を選択して並べ替えます。構文は次のとおりです-

SELECT *FROM yourTableName
ORDER BY FIELD(yourColumnName,’yourValue1’, ’yourValue2’,’yourValue3’,....N);

上記の構文を理解するために、テーブルを作成しましょう。テーブルを作成するためのクエリは次のとおりです-

mysql> create table OrderByListOfStrings
   -> (
   -> Id int not null auto_increment,
   -> CarName varchar(20),
   -> PRIMARY KEY(Id)
   -> );
Query OK, 0 rows affected (0.68 sec)

挿入コマンドを使用して、テーブルにいくつかのレコードを挿入します。クエリは次のとおりです-

mysql> insert into OrderByListOfStrings(CarName) values('Ford');
Query OK, 1 row affected (0.18 sec)

mysql> insert into OrderByListOfStrings(CarName) values('Audi');
Query OK, 1 row affected (0.17 sec)

mysql> insert into OrderByListOfStrings(CarName) values('Honda');
Query OK, 1 row affected (0.13 sec)

mysql> insert into OrderByListOfStrings(CarName) values('Aston Martin');
Query OK, 1 row affected (0.53 sec)

mysql> insert into OrderByListOfStrings(CarName) values('Bugatti');
Query OK, 1 row affected (0.20 sec)

mysql> insert into OrderByListOfStrings(CarName) values('BMW');
Query OK, 1 row affected (0.21 sec)

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

mysql> select *from OrderByListOfStrings;

以下は出力です-

+----+--------------+
| Id | CarName      |
+----+--------------+
|  1 | Ford         |
|  2 | Audi         |
|  3 | Honda        |
|  4 | Aston Martin |
|  5 | Bugatti      |
|  6 | BMW          |
+----+--------------+
6 rows in set (0.00 sec)

これは、文字列の選択によって順序を取得するためのクエリです。好きな順序で設定してください-

mysql> select *from OrderByListOfStrings
   -> order by field(CarName,'Bugatti','BMW','Audi','Aston Martin','Ford','Honda');

以下は、field()メソッドで設定された文字列を再配置する出力です-

+----+--------------+
| Id | CarName      |
+----+--------------+
|  5 | Bugatti      |
|  6 | BMW          |
|  2 | Audi         |
|  4 | Aston Martin |
|  1 | Ford         |
|  3 | Honda        |
+----+--------------+
6 rows in set (0.00 sec)

  1. 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

  2. 特定のセルを空に更新するMySQLクエリ

    まずテーブルを作成しましょう- mysql> create table DemoTable (    Id int,    Name varchar(50) ); Query OK, 0 rows affected (0.47 sec) 挿入コマンド-を使用して、テーブルにいくつかのレコードを挿入します mysql> insert into DemoTable values(1001,'Robert'); Query OK, 1 row affected (0.14 sec) mysql> insert into De