Lokaltog Skrevet 12. august 2004 Del 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. Lenke til kommentar
Ueland Skrevet 12. august 2004 Del 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; Lenke til kommentar
nomore Skrevet 12. august 2004 Del 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); ?> Lenke til kommentar
jorgis Skrevet 12. august 2004 Del 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. Lenke til kommentar
Lokaltog Skrevet 12. august 2004 Forfatter Del 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' Lenke til kommentar
jorgis Skrevet 12. august 2004 Del Skrevet 12. august 2004 Lokaltog: Seff. Hvorfor tenkte jeg ikke på det? *notere bak øret* Lenke til kommentar
RipZ- Skrevet 12. august 2004 Del 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". Lenke til kommentar
The Red Devil Skrevet 12. august 2004 Del 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" Lenke til kommentar
Ueland Skrevet 13. august 2004 Del 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. Lenke til kommentar
The Red Devil Skrevet 13. august 2004 Del Skrevet 13. august 2004 hehe, yup. Eg la faktisk ikkje merke til at du hadde postet det tidligere i poste. Lenke til kommentar
Lokaltog Skrevet 13. august 2004 Forfatter Del 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 Lenke til kommentar
356speedster Skrevet 13. august 2004 Del 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" Lenke til kommentar
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å