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

MySQL UNION内で選択した順序を保持しますか?


CASEステートメントを使用することをお勧めします。 UNIONは使用しないでください。まずテーブルを作成しましょう-

mysql> create table DemoTable
   (
   Id int NOT NULL AUTO_INCREMENT PRIMARY KEY,
   ShippingDate datetime
   );
Query OK, 0 rows affected (0.63 sec)

挿入コマンド-

を使用して、テーブルにいくつかのレコードを挿入します
mysql> insert into DemoTable(ShippingDate) values('2019-04-21');
Query OK, 1 row affected (0.17 sec)

mysql> insert into DemoTable(ShippingDate) values('2019-01-01');
Query OK, 1 row affected (0.13 sec)

mysql> insert into DemoTable(ShippingDate) values('2019-05-11');
Query OK, 1 row affected (0.16 sec)

mysql> insert into DemoTable(ShippingDate) values('2018-12-31');
Query OK, 1 row affected (0.18 sec)

mysql> insert into DemoTable(ShippingDate) values('2019-02-18');
Query OK, 1 row affected (0.19 sec)

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

mysql> select *from DemoTable;

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

+----+---------------------+
| Id | ShippingDate        |
+----+---------------------+
| 1  | 2019-04-21 00:00:00 |
| 2  | 2019-01-01 00:00:00 |
| 3  | 2019-05-11 00:00:00 |
| 4  | 2018-12-31 00:00:00 |
| 5  | 2019-02-18 00:00:00 |
+----+---------------------+
5 rows in set (0.00 sec)
>

以下は、ケースバイケースで選択した順序を保持するためのクエリです。

mysql> select *from DemoTable
   ORDER
   BY CASE WHEN ShippingDate < CURDATE() THEN ShippingDate ELSE CURDATE() END DESC,
ShippingDate ASC;

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

+----+---------------------+
| Id | ShippingDate        |
+----+---------------------+
| 3  | 2019-05-11 00:00:00 |
| 1  | 2019-04-21 00:00:00 |
| 5  | 2019-02-18 00:00:00 |
| 2  | 2019-01-01 00:00:00 |
| 4  | 2018-12-31 00:00:00 |
+----+---------------------+
5 rows in set (0.00 sec)
>
  1. MySQLで条件付きのクエリを注文して選択する方法は?

    以下は構文です- select * from yourTableName order by yourColumnName=0,yourColumnName; まずテーブルを作成しましょう- mysql> create table DemoTable1348    -> (    -> Amount int    -> ); Query OK, 0 rows affected (0.80 sec) 挿入コマンド-を使用して、テーブルにいくつかのレコードを挿入します mysql> insert into

  2. 単一のクエリでのMySQLUNIONSELECTおよびIN句

    まずテーブルを作成しましょう- mysql> create table DemoTable1    -> (    -> StudentId int,    -> StudentName varchar(20)    -> ); Query OK, 0 rows affected (1.24 sec) 挿入コマンド-を使用して、テーブルにいくつかのレコードを挿入します mysql> insert into DemoTable1 values(210,'Adam'