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

MySQLでselectクエリによって取得された結果をどのように並べ替えることができますか?


テーブルから特定のデータまたは行を選択するのが一般的です。行は、テーブルに表示される順序で返されます。テーブルから選択した行を、ある列に対して昇順または降順で返す必要がある場合があります。

「ORDERBY」ステートメントは、ある列に関して結果を並べ替えるために使用されます。次の例は、より明確になります。

「name」フィールドを含むさまざまなフィールドで構成されるテーブルがあるとします。テーブルからすべての行を選択しますが、行は名前のアルファベット順に並べる必要があります。ここで「ORDERBY」ステートメントが機能します。このシナリオでは、結果を「名前」フィールドの昇順で並べ替える必要があります。

「ORDERBY」ステートメントは、デフォルトで、指定された列を昇順で並べ替えます。結果を降順で並べ替える場合は、同じものを指定する必要があります。結果を降順で並べ替えるには、キーワード「DESC」を指定します。

構文

昇順

SELECT * FROM table_name ORDER BY column_name

降順

SELECT * FROM table_name ORDER BY column_name DESC

PythonでMySQLを使用してテーブルから取得したデータを並べ替える手順

  • MySQLコネクタをインポートする

  • connect()

    を使用してコネクタとの接続を確立します
  • cursor()メソッドを使用してカーソルオブジェクトを作成します

  • 適切なmysqlステートメントを使用してクエリを作成します

  • execute()メソッドを使用してSQLクエリを実行する

  • 接続を閉じます

次のように「Student」という名前のテーブルがあるとします-

+----------+---------+-----------+------------+
|    Name  |   Class |    City   | Marks      |
+----------+---------+-----------+------------+
|    Karan |    4    |  Amritsar |    95      |
|    Sahil |    6    |  Amritsar |    93      |
|    Kriti |    3    |    Batala |    88      |
|   Khushi |    9    |    Delhi  |    90      |
|    Kirat |    5    |    Delhi  |    85      |
+----------+---------+-----------+------------+

テーブルからすべての行を選択しますが、名前のアルファベット順に選択します。つまり、結果を名前の昇順で並べ替えたいのです。

import mysql.connector

db=mysql.connector.connect(host="your host", user="your username", password="your
password",database="database_name")

cursor=db.cursor()

query= "SELECT * FROM Students ORDER BY Name"
cursor.execute(query)
for row in cursor:
   print(row)

上記のコードを正常に実行すると、生徒の名前の昇順またはアルファベット順に行が返されます。

出力

(‘Amit’ , 9 , ‘Delhi’ , 90)
(‘Karan’, 4 ,’Amritsar’ , 95)
(‘Kriti’ , 3 , ‘Batala’ ,88)
(‘Priya’ , 5 , ‘Delhi’ ,85)
(‘Sahil’ , 6 , ‘Amritsar’ ,93)

表示されるすべての行は、名前のアルファベット順になっています。同様に、行は、同様の構文に従って、マークの昇順または降順で配置されている可能性があります。


  1. クエリの結果をランダムに並べ替えて、MySQLでランダムな行を選択するにはどうすればよいですか?

    クエリの結果をランダムに並べ替えるには、ORDER BY RAND()を使用します。構文は次のとおりです- select * from DemoTable1559 where yourColumnName IN(yourValue1,yourValue2,....N) order by rand() limit yourLimitValue; まずテーブルを作成しましょう- mysql> create table DemoTable1559    -> (    -> EmployeeId int,    ->

  2. MySQLクエリの結果を変数に割り当てる方法は?

    @anyVariableNameを使用して、クエリの結果を変数に割り当てます。まずテーブルを作成しましょう- mysql> create table DemoTable1864      (      Id int,      FirstName varchar(20),      LastName varchar(20)      ); Query OK, 0 rows affected (0.00 sec) 挿入コマンド-を使用して、