Permalänk
Medlem

php: ta ut en rad ur mysql

Som topic lyder så vill jag ta ut en hel rad från en databas. Men saken är att id-nr inte är i ordning, det saknas id-nummer efter borttagning av inägg. T.ex. id går 1,5,6,8, så då kan man ju inte ta ut efter id, om det inte finns något sätt att "trycka ihop" tabellen så att den går i rätt nummerordning även efter borttagning.

Permalänk
Medlem

Det är ju fortfarande i nummerordning efter du tagit bort något... En ny rad kommer inte att ta över IDet från en raderad rad.

Visa signatur
Permalänk
Medlem

jo men säg att jag vill ha ut rad 1-10 eller i mitten någonstans 25-35, hur gör jag då. för jag kan ju inte räkna id-nummer då?

Permalänk
Medlem

SELECT * FROM foo LIMIT 1,10
SELECT * FROM foo LIMIT 25,35

Permalänk
Medlem

Det fungerar bra om man skriver 1, 2 eller andra ental, men så fort jag tex skriver 10,11 så trycker den ändå ut 10st inlägg från 10 och framåt. kombinationen 26,28 gav 28 inlägg från inlägg 26 och framåt. Ser iofs ett samband här, är det så att LIMIT fungerar så att man sätter start inlägget och sedan hur många inlägg framåt den ska visa ?

Edit: prövade med det och det är så LIMIT funktionen fungerar. Men tack för hjälpen KTottE, fick mig att få upp ögonen för LIMIT iaf.

Permalänk
Medlem

Ja, LIMIT fungerar att man sätter start och sedan hur många inlägg

Visa signatur
Permalänk

En fråga som jag tycker är aktuell iallafall, går det att få ordning på id-kolumnen på något smart sätt, så att alla nummer hamnar i ordning och efter varandra, eller är enda sättet att i princip droppa kolumnen och bygga om den?

Visa signatur

/Mvh Stefan

Permalänk
Medlem

Bra initiativ Guru Den frågan hade jag glömt bort att jag ställde. Men vill gärna ha svar på den fortfarande.

Permalänk
Medlem

Vad är nyttan med det?

Permalänk
Medlem

select * from myAss ORDER BY id asc;
Sen kan du använda myisamchk för att sortera datan efter en key.

Permalänk
Medlem

Öh, ORDER BY fungerar ju oavsett om det är luckor mellan indexen

Permalänk
Medlem

Jopps. Jag gjorde en "jag svarar innan jag läst första inlägget"

Permalänk
Medlem

Ja tex om man har en jättestor databas och det börjar bli väldigt höga id-nr och man vet med sig att man tagit bort många inlägg i mitten. Kanske man vill "trycka ihop" tabellen så man slipper de höga id-nr ett tag. Annars kommer jag inte på så många fler anledning just nu, kanske senare

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av KTottE
SELECT * FROM foo LIMIT 1,10
SELECT * FROM foo LIMIT 25,35

SELECT * FROM foo LIMIT 25,10
annars får man inlägg 25 till 60...

Visa signatur

Jorden är rund, det är jag säker på.
Kolla min blogg vettja. http://eboberg.blogspot.com

Permalänk
Medlem

kanske går att pilla ihop något med UPDATE?? ingen expert på sql, men kan man inte få ut radnumret på något sätt, och sen sätta det som id?? så kan man automatisera processen genom nån for each grej. Vet inte om jag flummar för mycket, men kanske värt att kolla vidare på...

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av mid_air
Ja tex om man har en jättestor databas och det börjar bli väldigt höga id-nr och man vet med sig att man tagit bort många inlägg i mitten. Kanske man vill "trycka ihop" tabellen så man slipper de höga id-nr ett tag. Annars kommer jag inte på så många fler anledning just nu, kanske senare

man kommer aldrig att behöva det. man använder auto_increment idn bara för att det ALLTID ska bli ett nytt unikt. Det är inget man behöver hålla reda på.

det är ju antalet rader som i så fall spelar någon roll... inte vilket id-nummer raderna har..