Kladu dotaz SELECT na tabulku a vyjede mi 100 řádků. Chci dotaz SELECT formulovat tak, aby výsledná sada záznamů měla nově vytvořený sloupec, kde by jednotlivé řádky byly očíslovány od 1 do 100, abych např. věděl, že 55. záznam je ta a ta položka, 75. zase jiná. Změním-li následně klauzulí ORDER BY řazení dat, měl by onen sloupec znovu obsahovat čísla od 1 do 100, tentokrát ale přiřazená jiným záznamům dle mnou zvoleného řazení. Jak na to? Poradí někdo?
$cislo = '0';
while($vypis=mysql_fetch_array($tvuj_dotaz)){
$cislo++;
echo $cislo.'. '.$vypis['jmeno_sloupce_z_db'].'<br>';
}
no nejak takhle by melo fachat(nezkousel jsemto)
Díky za odpověď, ale potřebuji číslovat výsledné záznamy už v jazyce SQL, aby byly viditelné přímo v klientovi MySQL, ne prostřednictvím PHP scriptu. Je to otázka spíše do nějakého MySQL fóra, ale přesto, neví si někdo rady?
to myslis neco jako:
id int NOT NULL auto_increment
?
Ano. Ale pro výsledek dotazu SELECT.
Dám SELECT, vyjede mi 100 záznamů a já chci vidět jejich pořadí ve výsledné sadě (co je na 34. řádku, co je na 78. řádku, atd.). Když pak zadám dotaz znovu v modifikované podobě (klauzulí ORDER BY změním pořadí), chci vidět, co je TENTOKRÁT na 68. řádku ("odshora"), atd.
"id int NOT NULL auto_increment" přiřadí každému záznamu v tabulce pevné číslo, já chci jen vidět, když položím JAKÝKOLI dotaz SELECT na tabulku, kolikátý v pořadí je ten a kolikátý onen záznam. Šlo by to přes ty PHP skripty (iterace), ale nejde to docílit i v jazyce SQL? (Ptám se, jsem začátečníkem ve světě MySQL). Díky.
No, nikdy jsem se s takovým požadavkem nesetkal, nenapadá mě praktický význam ale zkusím něco vymyslet. Počkej...
Už jsem to nějak vyřešil. Vytvořil jsem TEMPORARY TABLE se sloupcem AUTO_INCREMENT, a do té tabulky jsem vložil řádky (INSERT INTO...), které byly výsledkem mého dotazu SELECT.
A můžu se zeptat, k čemu je to dobré?
Mám hudební databázi a v ní TOP 40, vyhodnocovanou každý týden. Když dělám vyhodnocení úspěšnosti písniček v hitparádě (třeba za rok 2004), potřebuji znát i příčku (tj. číslo řádku), na které se ta či ona skladba umístila. Jde to zařídit přes PHP (nebo jiné skripty), ale jen mě tak zajímalo, jestli to jde zvládnout i přímo v SQL. S pozdravem.