Zobrazit předchozí téma :: Zobrazit následující téma |
Autor |
Zpráva |
DespeRadoX

Založen: 28. 07. 2007 Příspěvky: 520
|
Zaslal: 21. srpen 2007, 23:54:24 Předmět: select mysql |
|
|
zdravim, asi to bude lamerska otazka ale ako nejak elegantne spravim vyrez z tabulky v mysql? potrebujem konkretnu poziciu v tabulke +3 a -3 riadky , potrebujem zobrazit score hraca v nekonecne dlhej tabulke zoradenej podla score aby videl 3 pred sebou a 3 zasebou.
je na to nejaky prikaz ktory som prehliadol?
dik za pomoc _________________ http://www.touchgames.eu/
http://playito.com
TW: @Despo100
Space Merchants Online ...zruseny, pracujem na mobilnej verzii space merchantu |
|
Návrat nahoru |
|
 |
OndraSej

Založen: 28. 07. 2007 Příspěvky: 767 Bydliště: Brandýs nad Labem
|
Zaslal: 22. srpen 2007, 00:25:24 Předmět: |
|
|
Nejjednodussi co me napada je udelat dvojity dotaz
SELECT * FROM ... WHERE Score < mojeScore ORDER BY Score DESC
a vybrat prvni tri (tri s nizsim score). Potom udelat druhy
SELECT * FROM ... WHERE Score >= mojeScore ORDER BY Score
a opet vybrat prvni tri (tri s vyssim nebo stejnym score). Samozrejmosti zde je index pres sloupec Score.
Jina moznost je udelat jenom jeden SELECT ... ORDER BY Score a postupne prochazet vysledky, dokud nenajdes ty pozadovane. Coz pri vetsim poctu zaznamu muze byt pomerne neefektivni reseni. _________________ http://trionteam.net |
|
Návrat nahoru |
|
 |
rezna
Založen: 27. 07. 2007 Příspěvky: 2156
|
Zaslal: 22. srpen 2007, 06:05:19 Předmět: |
|
|
v MySQL je pekny vyraz LIMIT
select * from tabulka limit 10 - zobrazi 10 zaznamu (max)
select * from tabulka limit 10, 10 - zobrazi 10 zaznamu (max) od desateho |
|
Návrat nahoru |
|
 |
DespeRadoX

Založen: 28. 07. 2007 Příspěvky: 520
|
Zaslal: 22. srpen 2007, 07:23:13 Předmět: |
|
|
jj toto vsetko poznam nieje to to co som chcel ale vypada to ze sa tomu nevyhnem ,cakal som nejaky prikaz podobny LIMIT (ale bere len vyrez) ktory existuje ale nevsimol som si ho v dokumentacii,
btw v mojom pripade by bol limit pouzitelnejsi keby bral aj zapornu hodnotu kedze potrebujem aj 3 pred sebou, no co uz diky moc za snahu. _________________ http://www.touchgames.eu/
http://playito.com
TW: @Despo100
Space Merchants Online ...zruseny, pracujem na mobilnej verzii space merchantu |
|
Návrat nahoru |
|
 |
Chjoodge

Založen: 30. 07. 2007 Příspěvky: 145
|
Zaslal: 22. srpen 2007, 09:34:50 Předmět: |
|
|
DespeRadoX napsal: |
btw v mojom pripade by bol limit pouzitelnejsi keby bral aj zapornu hodnotu kedze potrebujem aj 3 pred sebou, no co uz diky moc za snahu. |
Do Limitu nemůžeš dát zápornou hodnotu, ale můžeš si ten výsledek tabulky seřadit obráceně:
kód: |
SELECT * FROM ... WHERE Score > mojeScore ORDER BY Score ASC LIMIT 3 |
- Vyhodí tři záznamy s nejbližším větším score (vzestupně podle score).
kód: |
SELECT * FROM ... WHERE Score < mojeScore ORDER BY Score DESC LIMIT 3 |
- Vyhodí tři záznamy s nejbližším nižším score (sestupně podle score). |
|
Návrat nahoru |
|
 |
rezna
Založen: 27. 07. 2007 Příspěvky: 2156
|
Zaslal: 22. srpen 2007, 09:38:41 Předmět: |
|
|
ja bych to trochu vylepsil
kód: |
SELECT * FROM (SELECT * FROM ... WHERE Score > mojeScore ORDER BY Score ASC LIMIT 3) ORDER BY Scode DESC |
a pak uz se jenom spoji 3 seznamy  |
|
Návrat nahoru |
|
 |
DespeRadoX

Založen: 28. 07. 2007 Příspěvky: 520
|
Zaslal: 22. srpen 2007, 14:56:41 Předmět: |
|
|
chlapi diky , moc ste mi pomohli _________________ http://www.touchgames.eu/
http://playito.com
TW: @Despo100
Space Merchants Online ...zruseny, pracujem na mobilnej verzii space merchantu |
|
Návrat nahoru |
|
 |
|