日付の計算中にORDERBY句を使用するにはどうすればよいですか?
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)
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)
-
MySQLでunionとorderby句を使用するにはどうすればよいですか?
Unionは、MySQLの一種の演算子です。これでORDERBYを使用して、レコードをフィルタリングできます。複数のテーブルから次々に行を選択する場合、または単一のテーブルから複数の行セットをすべて単一の結果セットとして選択する場合は、UNIONを使用します。 例を見てみましょう。 最初のテーブルを作成する create table UnionDemo1 -> ( -> id int -> ); Query OK, 0 rows affected (0.59 sec) 最初のテーブルにレコードを挿入します。 insert into UnionDe
-
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'); 上記の構文を理解するために、テーブルを作成しましょう。テーブ