16. november 2004 - 22:44
Der er
21 kommentarer og 1 løsning
finde maxid
heysa en hurtig en. Hvordan kan jeg med en query finde maxid, altså det højeste id i en table med auto increment //Thomas L.
Annonceindlæg tema
16. november 2004 - 22:46
#1
Hvis det er lige når du indsætter, kan du bruge last_insert_id() ellers SELECT id FROM tabel ORDER BY id DESC LIMIT 1
16. november 2004 - 22:46
#2
SELECT MAX(id) FROM tabelnavn Men lad være !!!! Brug LAST_INSERT_ID() funktionen !
16. november 2004 - 22:47
#3
Jamen der er ikke lige når jeg har indsat, den kender jeg godt. Men kan jeg bruge den alligevel.
16. november 2004 - 22:54
#4
Bare det er den sidste auto increment der er genereret af din connection, så virker LAST_INSERT_ID()
16. november 2004 - 22:58
#5
Problemet med SELECT MAX(id) eller mortensens variant er i flerbruger sammenhæng: process 1: INSERT - genererer værdi 37 process 2: INSERT - genererer værdi 38 process 1: SELECT MAX(id) - finder 38 process 2: SELECT MAX(id) - finder 38
16. november 2004 - 22:59
#6
Kan du give et eks på en query hvor den indgår arne_v ??
16. november 2004 - 23:06
#7
Du kan enten bare hente den med: SELECT LAST_INSERT_ID() eller du kan bruge den i en INSERT: INSERT INTO tabel2 VALUES (LAST_INSERT_ID(), 123, 'abc')
16. november 2004 - 23:10
#8
Og et andet problem, hvis der slettes rækker, så brister det lidt
16. november 2004 - 23:10
#9
Okaj men hvordan får jeg så udskrevet den som en var ?
16. november 2004 - 23:15
#10
Udfør queruyen: SELECT LAST_INSERT_ID() AS lastid og hent første række og enten første kolonne eller kolonne "lastid" (præcis hvordan afhænger jo lidt af programmerings sprog)
16. november 2004 - 23:17
#11
I php behøver du ik selv lave forespørgelsen. Der kan bruges den indbyggede fuktion mysql_insert_id()
16. november 2004 - 23:29
#12
Jeg kan kun bruge mysql_insert_id() i forbindelse med en insert QUERY og det er IKKE tilfældet her
16. november 2004 - 23:31
#13
Kan du også kun med LAST_INSERT_ID()
16. november 2004 - 23:33
#14
Det er vel kun en INSERT som kan lave eny auto increment id ??
16. november 2004 - 23:37
#15
Det her vil ikke $last_id_res = mysql_query("SELECT LAST_INSERT_ID() AS lastid FROM shout LIMIT 0,1") or die(mysql_error()); while ($last_id_row = mysql_fetch_array($last_id_res)) { echo $last_id = $last_id_row['lastid']; } Giver 0 Men brude give 3
16. november 2004 - 23:39
#16
$last_id_res = mysql_query("SELECT LAST_INSERT_ID() AS lastid") or die(mysql_error()); while ($last_id_row = mysql_fetch_array($last_id_res)) { echo $last_id = $last_id_row['lastid']; }
16. november 2004 - 23:39
#17
Og husk det skal være samme connection som den der har lavet insert !
16. november 2004 - 23:41
#18
Jamen så kan jeg jo ikke bruge last_insert_id da der ikke laves nogen insert på denne her side
16. november 2004 - 23:42
#19
Men så må det være den her SELECT id FROM tabel ORDER BY id DESC LIMIT 1 Der kommer det tætteste på det jeg skal bruge
17. november 2004 - 06:56
#20
I hvilken sammenhæng skal det bruges, for det må kunne løses på en mere skudsikker måde
17. november 2004 - 08:32
#21
Kan du ikke hente den last insert id på siden hvor der laves INSERT, gemme den i sessionen og bruge den på den anden side ?
05. december 2004 - 14:33
#22
Luker her Brugte SELECT id FROM tabel ORDER BY id DESC LIMIT 1 Hvis i vil ha point for hjælpen så skriv det her så opretter jeg anden spm med point
Computerworld tilbyder specialiserede kurser i database-management