Varukorg

Databaser & SQL

6 svar · 203 visningar · startad av juventus1

Medlem sedan dec. 2000399 inlägg
Trådstart#1

Hej!

Jag har gjort en varukorg som lagrar innehållet i en databas. Det jag nu funderar över är hur man ska kolla om en vara redan finns i korgen. Om den finns vill man ju öka antalet med 1 och inte lägga till en ny produkt. Finns det någon lösning där man inte behöver använda 2 sql-frågor?

Medlem sedan dec. 200012 464 inlägg
#2

Nej, det finns inget sådant statement.

Vilken dbms använder du? Det är bäst att lägga sådan funktionalitet i en stored procedure så att du minskar antalet anrop till databasservern.

Medlem sedan dec. 2000399 inlägg
#3

Jag anade nästan att det var ett bra jobb för en stored procedure. Tyvärr använder jag Access... :(

Medlem sedan maj 2001431 inlägg
#4

Om du använder MySQL finns ett sådant trevligt kommando.

Se http://www.mysql.com/doc/R/E/REPLACE.html

hmm men det går nog inte att räkna upp kom jag på..

näe just det står t.o.m.

In other words, you can't access the values of the old row from a REPLACE statement. In some old MySQL version it looked like you could do this, but that was a bug that has been corrected.

[Redigerat av Herman den 12 nov 2001]

Medlem sedan dec. 200012 464 inlägg
#5

Det här problemet går inte att lösa med hjälp av replace.

Medlem sedan dec. 200012 464 inlägg
#6

Det eefektivaste är väl att göra något liknande detta

 'asp

sql = "update van set items = items + 1 where itemid = " & itemid & " and customerId = " & customerId
connect.execute sql,rows,128
if rows = 0 then
  sql = "insert into van ..."
  connect.execute sql,,128
end if
Medlem sedan dec. 2000399 inlägg
#7

Ok, tack för tipset, ska prova det...

260 ms totalt · 4 externa anrop · v20260731065814-full.d34c6d5a
120 ms — deklarationer (db)
0 ms — hämta statistik (cache)
134 ms — hämta tråd, inlägg och bilagor (db)
122 ms — ändringar (db)