Jump to content

MySQL query izveide


aywars
 Share

Recommended Posts

Sveiki!

 

Ir jāizveido sekojošs MySQL query:

 

1) Ir 45 spēlētāju (vai vairāk) saraksts, kurā katram spēlētājam ir savs rangs (rank);

 

2) Pamatsastāvā piedalīties drīkst tikai 32 spēlētāji;

 

3) Pirmie 20 spēlētāji pēc rank tiek pamatsastāvā;

 

4) 8 spēlētāji tiek no kvalifikācijas (kurā piedalās 16 spēlētāji);

 

5) 4 atlikušos spēlētājus nosaka organizators (wc = 1).

 

Tiktāl nebūtu problēmu, izveidojam query, kura sakārto dalībniekus noteiktajā secībā:

SELECT * FROM players ORDER BY wc DESC, rank = 0, rank ASC

Šis query sakārto spēlētājus sākumā pēc wc, tad pēc rank. Ja rank nav (0), spēlētāji nonāk apakšā.

Vēlāk varam atdalīt pirmos 24 spēlētājus un pārējos 16 ielikt cīnīties par 8 atlikušajām lietām.

 

Taču ir vēl  viena lieta - organizators grib ielikt arī paša izvēlētus 8 spēlētājus kvalifikācijā (qwc = 1).

 

Tagad, kad esam tikuši līdz 25 spēlētājam, spēlētājus jāsakārto pēc QWC un tad atlikušos atkal pēc RANK. Vai vēl labāk - pirmos 20 pēc RANK, pēc tam 4 WC, tak vēl 8 pēc RANK un 8 pēc QWC. Jāatzīmē, ka WC un QWC nav noteikti 4 un 8. Tie var vispār nebūt, vai būt citā skaitā, un tad visu nosaka tikai RANK.

 

Ceru, ka normāli paskaidroju. Vai šo ir iespējams noformēt vienā MySQL query? Netieku skaidrībā, ko izmantot šajā gadījumā. Ceru uz palīdzību. Paldies!

 

 

 

 

 

 

 

 

 

 

 

 

 

 


Un tāds papildus jautājums (kas atrisinātu pirmo). Vai MySQL ir iespējams sakārtot, piemēram, pirmos 24 ierakstus vienā secībā, nākošos 16 citā secībā u.t.t. Ja ir, tad kā?

Link to comment
Share on other sites

Pareizi teica, izmanto LIMIT, vēl noderēs UNION ALL:

 

 

 

pirmos 20 pēc RANK, pēc tam 4 WC, tak vēl 8 pēc RANK un 8 pēc QWC

SELECT pēc ranga LIMIT 20

UNION ALL

SELECT pēc WC LIMIT 4

UNION ALL

SELECT pēc ranga LIMIT 8 OFFSET 20

UNION ALL

SELECT pēc QWC LIMIT 8

Link to comment
Share on other sites

Izveido kontu, vai pieraksties esošajā, lai komentētu

Jums ir jābūt šī foruma biedram, lai varētu komentēt tēmas

Izveidot jaunu kontu

Piereģistrējies un izveido jaunu kontu, tas būs viegli!

Reģistrēt jaunu kontu

Pierakstīties

Jums jau ir konts? Pierakstieties tajā šeit!

Pierakstīties tagad!
 Share

×
×
  • Izveidot jaunu...