Zdravím vás,
potreboval bych si v db MySQL vytvorit imaginarni sloupec s cisly radku?
1) Toto mám
+------+---------------+
| id | n |
+------+---------------+
| 55 | Max Sydow |
| 61 | Count Dracula |
| 102 | Hala Bala |
+------+---------------+
2) Toto chci dostat
+------+---------------+--------------+
| id | n |moje_radkovani |
+------+---------------+--------------+
| 55 | Max Sydow | 1 |
| 61 | Count Dracula | 2 |
| 102 | Hala Bala | 3 |
+------+---------------+--------------+
predem dekuji za pomoc
Milan
Fórum › MySQL
Imaginární řádkování
To Santas : trochu blbost, ne?
http://jan.skrasek.com – @hrachcz – webdeveloper
Tohle jsem pred nedavnem taky resil. Nejlepsim resenim je vytvorit tam proste dalsi sloupec a pres PHP tam udrzovat ty indexy. Jine reseni moc neni (sice se to da nejak delat pres triggery, ale na to je myslim dokonce treba zakladat dalsi tabulku). Ver mi.
Ja to resil kvuli nahodnemu vybirani zaznamu...ono hold pri 10000 zaznamech ORDER BY RAND() uz moc nefunguje.
To Pilot :
1.) Ako chápeš imaginárny stĺpec ?
2.a) Ak chceš len očíslovať riadky pri nejakom selektovaní, malo by stačiť toto:
SET @i:=0;
SELECT *, @i:=@i+1 as riadok FROM <tabulka>
Bude to však číslovať riadky daného selectu, nie riadky tabuľky.
2.b) Ak chceš pri selectovaní mať originálne poradové číslo daného riadku v tabuľke, tak si ten stĺpec radšej v tej tabuľke vytvor a obstarávaj.... Query, ktoré by to počítalo, by bolo asi dosť pomalé... Dané (pomalé query) by vyzeralo asi takto:
SET @i:=0;
SELECT <tabulka>.*,
tmp_r as riadok
FROM ((SELECT id as tmp_id,@i:=@i+1 as tmp_r FROM <tabulka> ORDER BY <A>) AS tmp JOIN <tabulka> ON tmp_id = id)
WHERE <B>
ORDER BY <C>;
// <A> je stĺpec, podľa ktorého chceš riadky číslovať
// <B> je klasická where podmienka, pri selektovaní
// <C> je stĺpec, ako chceš mať select zotriedený (order by)
3.) Ak chceš do tabuľky doplňiť takýto stĺpec, tak úplňe jednoducho (alter, update):
ALTER TABLE <tabulka> ADD COLUMN riadok INT unsigned ....
SET @i:=0;
UPDATE <tabulka> SET riadok = @i:=@i+1 ORDER BY <A>;
&btw,.. a aj mňa by zaujímalo, ... na čo chceš tie čísla riadkov.....?
Zjistit počet nových příspěvků
Přidej příspěvek
Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!
Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku
×Vložení zdrojáku
×Vložení obrázku
×Vložení videa
Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
Uživatelé prohlížející si toto vlákno
Uživatelé on-line: 0 registrovaných, 3 hosté
Podobná vlákna
řádkování textu v GUI — založil Noneus
Moderátoři diskuze