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

MySQLクエリでタイムスタンプを降順で並べ替えますが、タイムスタンプ0000-00-00 00:00:00を最初に配置しますか?


まず、テーブルを作成しましょう&mnus;

mysql> create table DemoTable
(
   `timestamp` timestamp
);
Query OK, 0 rows affected (1.12 sec)

挿入コマンド-

を使用して、テーブルにいくつかのレコードを挿入します
mysql> insert into DemoTable values(now());
Query OK, 1 row affected (0.27 sec)
mysql> insert into DemoTable values('00:00:00');
Query OK, 1 row affected (0.73 sec)
mysql> insert into DemoTable values('2018-01-10 12:34:45');
Query OK, 1 row affected (0.80 sec)
mysql> insert into DemoTable values('2019-12-31 10:50:45');
Query OK, 1 row affected (0.84 sec)

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

mysql> select *from DemoTable;

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

+---------------------+
| timestamp           |
+---------------------+
| 2019-08-17 06:17:12 |
| 0000-00-00 00:00:00 |
| 2018-01-10 12:34:45 |
| 2019-12-31 10:50:45 |
+---------------------+
4 rows in set (0.00 sec)

以下は、最初に0タイムスタンプを表示してタイムスタンプを降順で並べ替えるクエリです-

mysql> select *from DemoTable order by (`timestamp`=0) DESC,`timestamp` DESC;

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

+---------------------+
| timestamp           |
+---------------------+
| 0000-00-00 00:00:00 |
| 2019-12-31 10:50:45 |
| 2019-08-17 06:17:12 |
| 2018-01-10 12:34:45 |
+---------------------+
4 rows in set (0.00 sec)

  1. 一連の数字の最初の数字で並べ替えるMySQLクエリ?

    一連の番号の最初の番号で並べ替えるには、ORDER BY SUBSTRING_INDEX()を使用します。まずテーブルを作成しましょう- mysql> create table DemoTable (    SetOfNumbers text ); Query OK, 0 rows affected (0.53 sec) 挿入コマンド-を使用して、テーブルにいくつかのレコードを挿入します mysql> insert into DemoTable values('245,654,76,89,98'); Query OK, 1 row affect

  2. モジュラス結果に基づいてORDERBYレコードへのMySQLクエリ

    このためには、剰余演算子とともにORDERBYを使用します。まずテーブルを作成しましょう- mysql> create table DemoTable (    StudentId int,    StudentName varchar(100) ); Query OK, 0 rows affected (1.88 sec) 挿入コマンド-を使用して、テーブルにいくつかのレコードを挿入します mysql> insert into DemoTable values(100,'Chris'); Query OK, 1 row a