Hogyan tudok berendezni egy MYSQL táblát egy mező alapján?
A tábla neve konyv, és cim szerint kellene rendeznem fizikailag, tehát nem csak úgy akarom megnézni, hanem azt szeretném, hogy átrendezze a rekordokat, hogy aztán a weblap is majd úgy jelenítse meg.
Van egy egyszerű weblapom, amit nem én csináltam. Egy MySQL adatbázisból dolgozik, és annak fizikai sorrendje szerint listázza az adatokat. Ezt sajnos nem tudom átírni, de nem is kell, ha jó a sorrend az adatbázisban.
Régen a C-Panel kezelőjében volt erre lehetőség, hogy fizikai rendezés, de ez egy frissítéssel eltűnt. Most meg ott vagyok, hogy az újonnan felvitt rekordok a végére kerülnek, amit eddig így be tudtam rendezni, de most nem. Parancsot ki tudok adni, és ez a régi rendezés is ezt csinálta korábban, de most ezt valamiért kivették, így magam kellene hogy megcsináljam.
ALTER TABLE `konyv` ORDER BY `cim`;
De nem értem, ha hozzáférsz az adatbázishoz c panelen keresztül, akkor a kódhoz miért nem...
"Ezt sajnos nem tudom átírni, "
Kérj hozzá jogot, ha meg nem értesz hozzá add át olyannak aki tudja mit csinál.
"de nem is kell, ha jó a sorrend az adatbázisban."
Minek? az adatbázisba nem abc sorrendbe fogod felvinni az új rekordot, ID-t rendelsz hozzá.
Lekérdezéskor pedig általában a legújabb elől, és rendezési opciókkal a felhasználó majd meghatározza + keresés, ennyi.
#1: ez sajnos nem működik
#2: azért kérdeztem, mert nem akarok hozzányúlni a programkódhoz, ráadásul igen sok helyen kellene, míg a tábla tartalma nagyon ritkán változik.
#3: Már miért lenne az?
Nem értem miért ekkora gond, hogy meg akarom változtatni a rekordok sorrendjét a táblában.
Azért orbitális marhaság, mert sérti a programozási és adatkezelési tételeket/irányelveket/szokásokat. A kiírást nem az adatbázis intézi, hanem az üzleti logika. A DB csak tárol, és nyersen adja ki az eredményt.
Szerintem még gyakorolnod kéne sokat (nem rosszból mondom)
1. Csinálsz egy temp táblát a kívánt sorrenddel
2. Truncate-eled a táblát
3. Visszamásolod a temp táblából az adatokat
4. Törlöd a temp táblát.
De amúgy tényleg marhaság. A kódban kellene egy order by-t átírni...
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!