Lokaltog Skrevet 12. august 2004 Skrevet 12. august 2004 Er det noen her som vet hvordan man kan hente ut siste genererte auto_increment-verdi for en tabell? Har søkt en del rundt og lest i MySQL-manualen, men finner ingen metoder for å hente den verdien, så jeg spør her i håp om at noen vet hvordan man gjør dette.
Ueland Skrevet 12. august 2004 Skrevet 12. august 2004 SELECT id FROM tabellnavn ORDER BY id DESC LIMIT 1; Sånn ca slik evnt SELECT COUNT(id) AS totalt FROM tabellnavn;
nomore Skrevet 12. august 2004 Skrevet 12. august 2004 SELECT COUNT(id) AS totalt FROM tabellnavn; denne vil telle antall rader i tabellen. dersom man da har slettet en eller flere rader vil denne gi feil resultat. dersom man nettopp har lagt til noe i en tabell, kan du bruke funksjonen mysql_insert_id(). men BARE dersom du var den siste som la til noe. en sikrere måte er å gjøre dette: <? $tabell = mysql_query("INSERT ...."); echo mysql_insert_id($tabell); ?>
jorgis Skrevet 12. august 2004 Skrevet 12. august 2004 Er det mulig å endre auto_increment verdien i en tabell også? Hadde vært veldig grei til å kunne sette den om igjen for å unngå store "hopp" i id-feltene etter slettinger.
Lokaltog Skrevet 12. august 2004 Forfatter Skrevet 12. august 2004 denne vil telle antall rader i tabellen. dersom manda har slettet en eller flere rader vil denne gi feil resultat. dersom man nettopp har lagt til noe i en tabell, kan du bruke funksjonen mysql_insert_id(). men BARE dersom du var den siste som la til noe. en sikrere måte er å gjøre dette: <? $tabell = mysql_query("INSERT ...."); echo mysql_insert_id($tabell); ?> Er klar over at jeg kan kalle mysql_insert_id() for å sjekke resultatet etter siste INSERT-spørring, men poenget er at jeg gjerne vil hente ut denne verdien uten å sette inn en rad i tabellen først. @jorgis: ALTER TABLE `tabell` AUTO_INCREMENT = 'tall'
jorgis Skrevet 12. august 2004 Skrevet 12. august 2004 Lokaltog: Seff. Hvorfor tenkte jeg ikke på det? *notere bak øret*
RipZ- Skrevet 12. august 2004 Skrevet 12. august 2004 Om man går ut i fra at den siste id'en som ble satt inn vha auto_increment er den høyeste, kan man bruke "select max(id) from tabell".
The Red Devil Skrevet 12. august 2004 Skrevet 12. august 2004 Det vil vel også gå og fortelle querien at den skal hente ut siste plassering i tabellen? "SELECT id FROM tabell ORDER BY id DESC LIMIT 1"
Ueland Skrevet 13. august 2004 Skrevet 13. august 2004 da ender vi opp med at den første spørringen var helt korrekt, hvorfor gjøre det mer avansert en nødvendig.
The Red Devil Skrevet 13. august 2004 Skrevet 13. august 2004 hehe, yup. Eg la faktisk ikkje merke til at du hadde postet det tidligere i poste.
Lokaltog Skrevet 13. august 2004 Forfatter Skrevet 13. august 2004 (endret) SirIce hjalp meg med å finne en løsning som funker fint for meg. Den henter ikke siste genererte auto_increment-verdi, men den sier hva verdien bør være. SELECT MAX(id)+1 FROM tabell Edit: Oops, pastet feil kode.. Endret 13. august 2004 av lokaltog
356speedster Skrevet 13. august 2004 Skrevet 13. august 2004 SirIce hjalp meg med å finne en løsning som funker fint for meg. Den henter ikke siste genererte auto_increment-verdi, men den sier hva verdien bør være. SELECT COUNT(id)+1 AS totalt FROM tabell Men denne vil ikke være riktig hvis noen eldre rader er blitt slettet. Da er det bedre med: "SELECT id FROM tabellnavn ORDER BY id DESC LIMIT 1"
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå