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

MySQLで識別子(カラム名)なしで結果を並べ替える方法

MySQLで識別子(カラム名)なしで結果を並べ替える方法

MySQLでは、カラム名を指定せずにSELECT結果を並べ替えることができます。その場合は、ORDER BY句にカラムの位置(番号)を指定します。

基本構文

select * from yourTableName order by 1 DESC LIMIT yourLimitValue;

「order by 1」は、SELECT句で指定した1番目のカラムを基準に並べ替えることを意味します。DESCを付けることで降順ソートになります。

サンプルテーブルの作成

まず、テーブルを作成します。

mysql> create table DemoTable1325
-> (
-> Id int,
-> Name varchar(20)
-> );
Query OK, 0 rows affected (0.69 sec)

レコードの挿入

INSERTコマンドを使って、テーブルにいくつかのレコードを挿入します。

mysql> insert into DemoTable1325 values(100,'Chris');
Query OK, 1 row affected (0.13 sec)
mysql> insert into DemoTable1325 values(101,'Bob');
Query OK, 1 row affected (0.12 sec)
mysql> insert into DemoTable1325 values(120,'David');
Query OK, 1 row affected (0.14 sec)
mysql> insert into DemoTable1325 values(115,'Sam');
Query OK, 1 row affected (0.18 sec)
mysql> insert into DemoTable1325 values(130,'Carol');
Query OK, 1 row affected (0.14 sec)
mysql> insert into DemoTable1325 values(150,'Mike');
Query OK, 1 row affected (0.15 sec)

レコードの表示

SELECT文でテーブルの全レコードを表示します。

mysql> select * from DemoTable1325;

実行結果は以下の通りです。

+------+-------+
| Id | Name |
+------+-------+
| 100 | Chris |
| 101 | Bob |
| 120 | David |
| 115 | Sam |
| 130 | Carol |
| 150 | Mike |
+------+-------+
6 rows in set (0.00 sec)

識別子なしで並べ替えるクエリ

カラム名を指定せずに結果を降順で並べ替え、先頭4件のみを取得するクエリは以下の通りです。

mysql> select * from DemoTable1325 order by 1 DESC LIMIT 4;

実行結果は以下の通りです。

+------+-------+
| Id | Name |
+------+-------+
| 150 | Mike |
| 130 | Carol |
| 120 | David |
| 115 | Sam |
+------+-------+
4 rows in set (0.00 sec)

このように、ORDER BY 1と指定することで、SELECT句の1番目のカラム(この例ではId)を基準に、カラム名を明示することなく並べ替えが可能です。LIMIT句と組み合わせれば、上位N件だけを簡単に取得できます。

  1. MySQLでクエリ結果をランダムに並べ替え、ランダムな行を選択する方法

    MySQLでクエリの結果をランダムに並べ替えたい場合は、ORDER BY RAND() を使用します。WHERE句で絞り込んだ結果に対してランダムな順序を適用し、LIMIT句と組み合わせることで、指定した件数の行をランダムに取得できます。基本構文select * from DemoTable1559 where yourColumnName IN(yourValue1,yourValue2,....N) order by rand() limit yourLimitValue;サンプルテーブルの作成まずは動作確認用のテーブルを作成しましょう。mysql> create table Dem

  2. MySQLで複数テーブルの結果をマージする方法|JOINを使った結合手順を解説

    MySQLで2つ以上のテーブルに分かれたデータを1つの結果としてまとめたい場合、JOIN(結合)を使うのが最もシンプルで効果的な方法です。この記事では、実際にテーブルを作成しながら、JOINによる結果のマージ手順をわかりやすく解説します。マージに使用するJOINの基本構文結果をマージするには、以下のような構文でシンプルなJOINを使用します。SELECT aliasName1.yourColumnName1, aliasName1.yourColumnName2, ... aliasName2.yourColumnName1 FROM yourTableName1 aliasN