Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Menjana Nombor Baris Dalam Kumpulan dalam MySQL?
Masalah:
Hasilkan pertanyaan MySQL untuk menjana nombor baris bagi setiap kumpulan rekod berdasarkan dua medan, seperti crew_id dan type. Nombor baris hendaklah ditetapkan semula untuk setiap gabungan crew_id dan jenis baharu.
Data Contoh:
id crew_id amount type 1 4 1000 AUB 2 4 1500 AUB 3 5 8000 CA 4 4 1000 CA 5 5 1000 AUB 6 6 3000 AUB 7 4 2000 CA 8 6 3500 AUB 9 4 5000 AUB 10 5 9000 CA 11 5 1000 CA
Output yang Diingini:
id crew_id amount type row_number 1 4 1000 AUB 1 2 4 1500 AUB 2 9 4 5000 AUB 3 4 4 1000 CA 1 7 4 2000 CA 2 5 5 1000 AUB 1 3 5 8000 CA 1 10 5 9000 CA 2 11 5 1000 CA 3 6 6 3000 AUB 1 6 6 3000 AUB 2
Penyelesaian:
Kepada mencapai nombor baris yang dikehendaki, kita boleh menggunakan gabungan subkueri dan pernyataan KES:
SELECT id, crew_id, amount, type, ( CASE type WHEN @curType THEN @curRow := @curRow + 1 ELSE @curRow := 1 AND @curType := type END ) + 1 AS rank FROM Table1 p, (SELECT @curRow := 0, @curType := '') r ORDER BY crew_id,type asc;
Dalam pertanyaan ini:
Pernyataan CASE dalam pertanyaan SELECT luar membandingkan lajur jenis dengan @curType untuk menentukan sama ada baris semasa tergolong dalam kumpulan yang sama.
Atas ialah kandungan terperinci Bagaimana untuk Menjana Nombor Baris Dalam Kumpulan dalam MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!