Zdravím,
Príklad: mám SELECT s WHERE ID =5;
Ako vypíšem hodnotu(pozicia) riadka, kde tento SELECT splňuje podminku?
Príklad: podmienke vyhovuje 3. riadok, teda 3.
Dík
Zdravím,
Príklad: mám SELECT s WHERE ID =5;
Ako vypíšem hodnotu(pozicia) riadka, kde tento SELECT splňuje podminku?
Príklad: podmienke vyhovuje 3. riadok, teda 3.
Dík
VratiS poptává: Android aplikace - ukládání pozic s GPS souřadnicemi a doplňkovými daty
Bubinko poptává: Vytvorenie inzertneho portalu
Businessfactory poptává: Python + web technologie - nabidka práce
Jak se pozná, že je to 3. řádek? Podle data vložení? Tak to pak budeš muset mít sloupec s datem vložení, podle toho to seřadit, udělat celý výpis tabulky (bez podmínky) a použít třeba RANK() na přidělení čísel, a potom to použít jako vnořený dotaz v souvislosti s tou tvojí podmínkou
---------- Post added 9.9.2011 at 15:29 ----------
neřeším zde optimalitu, ale třeba takhleKód:SELECT rn FROM (SELECT ROWNUM rn, t1.s FROM ( SELECT s FROM tabulka ORDER BY poradi) t1) t2 WHERE t2.s = 5
proste mám napríklad 10 záznamov. v tabuľke nemám žiadne dáta ktoré hovoria na akej je pozícii. Chcel by som vedieť na akom riadku sa nachádza záznam
Záznamy v tabulce nemají žádné specifické pořadí, dokud nejsou seřazeny podle ORDER BY a DB je může vracet v náhodném pořadí, takže výsledek "řádek je 1. v pořadí" je správnou odpovědí na tvůj požadavek; řešením je tedy:-DKód:select 1 poradi from dual
aky zmysel alebo aku vypovednu hodnotu to akoze ma mat ? naco ti je vystup ze v konkretnom selecte sa hodnota nachadzala na 3tej pozicii ? nech rozmyslam ako rozmyslam nijake logicke vysvetlenie nenachadzam...
A to já to chápu, mám třeba časy závodníků v cíli, a chci vědět, kolikátý byl Franta. Ale k tomu právě musí mít ty hodnoty k sestavení pořadí. Když nejsou (jak píše), tak to tedy vlastně taky nechápu...
Když budu vycházet z toho, že v Oracle existuje něco jako ROWID volatelné při selectu, tak u MySQL by toho mohlo jít docílit například pomocí proměnné:
set @cisloradku := 0;
select *, @cisloradku := @cisloradku +1 as poradizavodnika from tabulka
Pokud tedy dobře rozumím Tvému požadavku...
proste chcem strankovanie a vediet na akej som pozicii
Však v druhym postu je řešení, akorát je pro Oracle. Pro něco jiného si najdi jak v tom nahradit ROWNUM
Nejdřív musíš podle nečeho data řadit. Předpokládám, že podle ID, když uvádíš ID = 5. Problém SQL dat je ten, že je můžeš řadit podle jakéhokoliv sloupce a pak se pořadí tvého konkrétního řádku může dost měnit. Takže musíěš mít nějaký jednoznačný unikátní identifikátor podle kterého data seřadíš, může to být ID, nějaké pole s datumem apod.
Jinak řešení jde nalét poměrně snadno na Google pomíc fráze "MySQL get row number", konkrétně hned první článek http://jimlife.wordpress.com/2008/09...wnum-in-mysql/ ukazuje SQL dotaz kterým jde udělat přesně to co chceš.
Pro účely stránkování jednoduše používejte LIMIT a v session (nebo jiném perzistentním parametru) si držte číslo stránky, na které jste.
---------- Příspěvek doplněn 17.09.2011 v 09:29 ----------
Ve skutečnosti podle ničeho řadit nemusíte. Ale obvykle je dobrý nápad to dělat a téměř vždy je tam alespoň jeden sloupec, který z hlediska uživatele dává smysl pro default řazení - typicky čas nebo id.