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

最初に過去3か月で注文し、次にMySQLでアルファベット順に注文しますか?


まずテーブルを作成しましょう-

mysql> create table DemoTable1526
   -> (
   -> CustomerName varchar(20),
   -> PurchaseDate date
   -> );
Query OK, 0 rows affected (0.67 sec)

挿入コマンドを使用して、テーブルにいくつかのレコードを挿入します。ここに、2019年の日付を挿入しました-

mysql> insert into DemoTable1526 values('Adam','2019-06-01');
Query OK, 1 row affected (0.12 sec)
mysql> insert into DemoTable1526 values('Sam','2019-04-26');
Query OK, 1 row affected (0.13 sec)
mysql> insert into DemoTable1526 values('Chris','2019-05-24');
Query OK, 1 row affected (0.10 sec)
mysql> insert into DemoTable1526 values('David','2019-10-10');
Query OK, 1 row affected (0.23 sec)
mysql> insert into DemoTable1526 values('Bob','2019-12-31');
Query OK, 1 row affected (0.23 sec)

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

mysql> select * from DemoTable1526;

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

+--------------+--------------+
| CustomerName | PurchaseDate |
+--------------+--------------+
| Adam         |   2019-06-01 |
| Sam          |   2019-04-26 |
| Chris        |   2019-05-24 |
| David        |   2019-10-10 |
| Bob          |   2019-12-31 |
+--------------+--------------+
5 rows in set (0.00 sec)

現在の日付は次のとおりです-

mysql> select curdate();
+------------+
| curdate()  |
+------------+
| 2019-10-08 |
+------------+
1 row in set (0.00 sec)

2019年の最初の最後の3か月までに注文し、次にアルファベット順に注文するクエリは次のとおりです-

mysql> select * from DemoTable1526
   -> order by PurchaseDate > curdate() - interval 3 month desc,CustomerName;

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

+--------------+--------------+
| CustomerName | PurchaseDate |
+--------------+--------------+
| Bob          |   2019-12-31 |
| David        |   2019-10-10 |
| Adam         |   2019-06-01 |
| Chris        |   2019-05-24 |
| Sam          |   2019-04-26 |
+--------------+--------------+
5 rows in set (0.00 sec)

  1. PostgreSQLでMySQLのORDERBYFIELD()をシミュレートしますか?

    以下は、PostgreSQLでMySQLのORDER BY FIELD()をシミュレートするプロセスです。 オンラインコンパイラを使用してPostgreSQLを実行しました。 出力を取得するために上記で行ったことを見てみましょう。 まず、テーブルを作成しました。 create table PostgreOrderIdDemo (    countryName varchar(20) );を作成します INSERTコマンドを使用してレコードを挿入しました。 insert into PostgreOrderIdDemo values('IND');

  2. 最初に値に基づいてアイテムを選択し、次にMySQLの残りのレコードの日付に基づいて注文します

    ORDER BYを使用してレコードを修正し、表示します select * from yourTableName order by yourColumnName1=yourValue desc,yourColumnName2; まずテーブルを作成しましょう- mysql> create table DemoTable1932    (    UserName varchar(20),    ShippingDate date    ); Query OK, 0 rows affected (0.00 sec)