cari

Rumah  >  Soal Jawab  >  teks badan

php - MySQL menyusun dan mendapatkan nombor siri yang sepadan

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梦2758 hari yang lalu665

membalas semua(3)saya akan balas

  • 巴扎黑

    巴扎黑2017-05-16 13:13:51

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

    balas
    0
  • phpcn_u1582

    phpcn_u15822017-05-16 13:13:51

    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

    balas
    0
  • 伊谢尔伦

    伊谢尔伦2017-05-16 13:13:51

    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

    balas
    0
  • Batalbalas