php - MySQL menyusun dan mendapatkan nombor siri yang sepadan
过去多啦不再A梦
过去多啦不再A梦 2017-05-16 13:11:51
0
3
662

Kini kita perlu melaksanakan fungsi sedemikian: mengisih ketinggian kanak-kanak pada umur yang sepadan dalam pangkalan data, dan dapatkan kedudukan ketinggian kanak-kanak dengan ID yang ditentukan. Sebagai contoh, anda ingin menanyakan kedudukan ketinggian kanak-kanak berumur 8 tahun dengan ID 9527 antara ketinggian semua kanak-kanak berumur 8 tahun. Saya tidak tahu banyak tentang pangkalan data, jadi saya biasanya hanya menambah, memadam, mengubah suai dan memadam, jadi saya tidak tahu bagaimana untuk melaksanakan fungsi ini.

Saya menanyakan beberapa maklumat dalam talian, saya mengisihnya dahulu, menjana nombor siri baris, dan kemudian mengembalikan nombor siri yang sepadan dengan ID kanak-kanak. Terdapat pernyataan yang serupa seperti berikut

pilih id,ketinggian,(@rowno:=@rowno+1) sebagai rowno daripada ujian,(pilih (@rowno:=0)) b
susunan mengikut ketinggian desc;
Berdasarkan ini, tanya lokasi:

pilih rowno daripada (pilih id,height,(@rowno:=@rowno+1) sebagai rowno daripada ujian,
(pilih (@rowno:=0)) b susunan mengikut keterangan ketinggian) c dengan id = 9527;

Soalan saya ialah:
1 Apakah itu (@rowno:=@rowno+1), (pilih (@rowno:=0)), b dan C dalam pernyataan. ? Saya mencarinya dan mendapati bahawa ia adalah sesuatu seperti tugasan yang dinamakan tersuai, tetapi saya tidak tahu cara memahaminya dengan tepat b dan c itu kelihatan bermakna?

2. Saya ingin menambah syarat pada penyataan ini, iaitu kedudukan ketinggian kanak-kanak berumur lapan tahun, saya perlu menambah di mana umur bersamaan 8 dengan penyataan pengisihan pertama ditambah? Saya cuba menambahkannya selepas dari ujian dan di beberapa tempat lain, tetapi saya mendapat ralat saya tidak tahu cara menambahkannya.

Saya telah mengalami masalah selama sehari. Saya berharap pangkalan data dapat membantu menjawab dua soalan ini. ! !

过去多啦不再A梦
过去多啦不再A梦

membalas semua(3)
巴扎黑

1, dapatkan ketinggian 9527 sebagai h
2, pilih kiraan(0) dari tb di mana umur = 8 dan ketinggian >

phpcn_u1582

Tak perlu rumit sangat, ranking ketinggian, kalau rank dari tinggi ke rendah, kira macam ni:
a=medan ketinggian
pilih kiraan(*) daripada kanak-kanak di mana
umur=8 dan
a>= (pilih a daripada kanak-kanak di mana id=9527 );
count(*) ialah ranking

伊谢尔伦

mysql tidak menyokong fungsi pangkat... Dalam pangkalan data yang agak berkuasa seperti oracle, postgres, dll., ia boleh dilaksanakan dengan mudah menggunakan row_number()
Jika lajur pangkalan data ialah id, umur, ketinggian
pilih id, umur , tinggi,
row_number() over (partition by age order by height desc) as rn
from tb

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan