Rumah > pangkalan data > tutorial mysql > Bagaimana untuk Mendapatkan Kedudukan Baris Entri Khusus dalam Pertanyaan MySQL `ORDER BY`?

Bagaimana untuk Mendapatkan Kedudukan Baris Entri Khusus dalam Pertanyaan MySQL `ORDER BY`?

DDD
Lepaskan: 2025-01-18 02:21:08
asal
637 orang telah melayarinya

How to Get the Row Position of a Specific Entry in a MySQL `ORDER BY` Query?

Pilih kedudukan baris dalam MySQL ORDER BY pertanyaan

Andaikan terdapat jadual MySQL dengan dua lajur id dan name, dan matlamatnya adalah untuk mendapatkan satu baris dan kedudukannya dalam jadual diisih mengikut lajur name dalam tertib menaik. Format hasil yang diingini ialah jadual dengan lajur id, position dan name.

Untuk melakukan ini, anda boleh menggunakan subkueri yang digabungkan dengan pembolehubah pengguna:

<code class="language-sql">SELECT x.id,
       x.position,
       x.name
  FROM (SELECT t.id,
               t.name,
               @rownum := @rownum + 1 AS position
          FROM TABLE t
          JOIN (SELECT @rownum := 0) r
      ORDER BY t.name) x
 WHERE x.name = 'Beta';</code>
Salin selepas log masuk

Dalam pertanyaan ini, subkueri mengira kedudukan setiap baris berdasarkan susunan nilai name. Pembolehubah takrif pengguna @rownum digunakan untuk menetapkan kedudukan unik. Pertanyaan utama kemudian menapis hasil untuk mendapatkan nilai name "Beta" yang dikehendaki.

Sebagai alternatif, pertanyaan berikut menyediakan kedudukan yang menyelesaikan kes dengan nama yang sama:

<code class="language-sql">SELECT t.id,
       (SELECT COUNT(*)
          FROM TABLE x
         WHERE x.name <= t.name) AS position,
       t.name
  FROM TABLE t
 WHERE t.name = 'Beta';</code>
Salin selepas log masuk

Pertanyaan ini mengira kedudukan dengan mengira bilangan baris dengan nilai name kurang daripada atau sama dengan nilai name baris semasa. Kedua-dua kaedah menyediakan cara untuk menentukan kedudukan baris dalam set hasil diisih.

Atas ialah kandungan terperinci Bagaimana untuk Mendapatkan Kedudukan Baris Entri Khusus dalam Pertanyaan MySQL `ORDER BY`?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan