webForumDet fria alternativet

Öka med 1 utan att läsa först

Databaser & SQL

3 svar · 246 visningar · startad av Fireh

Medlem sedan jan. 2003173 inlägg
Frågan#1

Tjenare!

Jag kom inte på någon bättre rubrik :l

Jag har en tabell med ett fält som heter "Logins". När en person loggar in, så uppdateras en post med senaste användare, tid och vilket login det är i ordningen.

Just nu gör jag först en recordset för att läsa ut vilket login som var senaste. Sedan uppdaterar jag där jag då skriver login+1 för att öka med 1.

Finns det något sätt att direkt i koden få MySQL att automatiskt öka med 1 utan att behöva ödsla tid på att läsa värdet först?

Nuvarande kod:

SET rs=db.Execute("SELECT * FROM Info WHERE ID=1")
Logins = rs("Logins") + 1
db.Execute "UPDATE Info SET Logins="&Logins&", User='"&User&"', Senast='"&Now&"' WHERE ID=1"

Min önskan:

db.Execute "UPDATE Info SET Logins=Increase(1), User='"&User&"', Senast='"&Now&"' WHERE ID=1"

Increase(1) finns väl inte, men det är typ så jag menar. En funktion man kan använda direkt utan att behöva läsa ur värdet först.

Medlem sedan mars 20032 667 inlägg
#2
UPDATE Info SET Logins=Logins+1, User='"&User&"', Senast='"&Now&"' WHERE ID=1
Medlem sedan jan. 2003173 inlägg
#3

Vad enkelt det kan vara ibland, hehe!
:D

Medlem sedan dec. 200012 464 inlägg
#4

Flyttas från Mysql

256 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
124 ms — deklarationer (db)
0 ms — hämta statistik (cache)
129 ms — hämta tråd, inlägg och bilagor (db)
124 ms — ändringar (db)