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

日付の計算中にORDERBY句を使用するにはどうすればよいですか?


日付の計算中にORDERBY句を使用すると、レコードを見つける方が便利です。それを理解するために、次のようにテーブル「Collegedetail」からのデータがあります-

mysql> Select * from Collegedetail;
+------+---------+------------+
| ID   | Country | Estb       |
+------+---------+------------+
| 111  | INDIA   | 2010-05-01 |
| 130  | INDIA   | 1995-10-25 |
| 139  | USA     | 1994-09-25 |
| 1539 | UK      | 2001-07-23 |
| 1545 | Russia  | 2010-07-30 |
+------+---------+------------+
5 rows in set (0.00 sec)

ここで、大学が古くなった年数を計算したい場合は、次のように計算できます-

mysql> Select ID, estb, CURDATE(),((YEAR(CURDATE())-YEAR(estb))-(RIGHT(CURDATE(),5)<RIGHT(estb,5))) AS 'YEARS_OLD' from collegedetail;
+------+------------+------------+-----------+
| ID   | estb       | CURDATE()  | YEARS_OLD |
+------+------------+------------+-----------+
| 111  | 2010-05-01 | 2017-11-30 |         7 |
| 130  | 1995-10-25 | 2017-11-30 |        22 |
| 139  | 1994-09-25 | 2017-11-30 |        23 |
| 1539 | 2001-07-23 | 2017-11-30 |        16 |
| 1545 | 2010-07-30 | 2017-11-30 |         7 |
+------+------------+------------+-----------+
5 rows in set (0.00 sec)
大学の古い年数を計算するときに次のようにORDERBY句を使用すると、検索がより便利になります-

mysql> Select ID, estb, CURDATE(),((YEAR(CURDATE())-YEAR(estb))-(RIGHT(CURDATE(),5)<RIGHT(estb,5))) AS 'YEARS_OLD' from collegedetail ORDER BY YEARS_OLD;
+------+------------+------------+-----------+
| ID   | estb       | CURDATE()  | YEARS_OLD |
+------+------------+------------+-----------+
| 111  | 2010-05-01 | 2017-11-30 |         7 |
| 1545 | 2010-07-30 | 2017-11-30 |         7 |
| 1539 | 2001-07-23 | 2017-11-30 |        16 |
| 130  | 1995-10-25 | 2017-11-30 |        22 |
| 139  | 1994-09-25 | 2017-11-30 |        23 |
+------+------------+------------+-----------+
5 rows in set (0.01 sec)

上記の結果セットは、「YEARS_OLD」でORER BY句を使用することにより、最も古い大学を非常に簡単に検索できることを示しています。次のように、DESCキーワードをORDER BY句とともに使用して、一番上の行の最も古い大学を返すこともできます-

mysql> Select ID, estb, CURDATE(),((YEAR(CURDATE())-YEAR(estb))-(RIGHT(CURDATE(),5)<RIGHT(estb,5))) AS 'YEARS_OLD' from collegedetail ORDER BY YEARS_O
LD DESC;
+------+------------+------------+-----------+
| ID   | estb       | CURDATE()  | YEARS_OLD |
+------+------------+------------+-----------+
| 139  | 1994-09-25 | 2017-11-30 |        23 |
| 130  | 1995-10-25 | 2017-11-30 |        22 |
| 1539 | 2001-07-23 | 2017-11-30 |        16 |
| 111  | 2010-05-01 | 2017-11-30 |         7 |
| 1545 | 2010-07-30 | 2017-11-30 |         7 |
+------+------------+------------+-----------+
5 rows in set (0.00 sec)

  1. MySQLでunionとorderby句を使用するにはどうすればよいですか?

    Unionは、MySQLの一種の演算子です。これでORDERBYを使用して、レコードをフィルタリングできます。複数のテーブルから次々に行を選択する場合、または単一のテーブルから複数の行セットをすべて単一の結果セットとして選択する場合は、UNIONを使用します。 例を見てみましょう。 最初のテーブルを作成する create table UnionDemo1 -> ( -> id int -> ); Query OK, 0 rows affected (0.59 sec) 最初のテーブルにレコードを挿入します。 insert into UnionDe

  2. IN句の順序でMySQL行を選択するにはどうすればよいですか?

    IN句の順序でMySQL行を選択するには、FIND_IN_SET()関数を使用する必要があります。構文は次のとおりです- SELECT yourVariableName.* FROM yourTableName yourVariableName WHERE yourVariableName.yourColumnName IN(value1,value2,...N) ORDER BY FIND_IN_SET( yourVariableName.yourColumnName,'value1,value2,...N'); 上記の構文を理解するために、テーブルを作成しましょう。テーブ