webForumDet fria alternativet

Varukorg

Databaser & SQL

6 svar · 180 visningar · startad av juventus1

Medlem sedan dec. 2000399 inlägg
Frågan#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?

------------------
mvh André

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.

------------------
essentitia preter non sans multiplicandum

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... :(

------------------
mvh André

[Redigerat av juventus1 den 12 nov 2001]

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.

------------------
essentitia preter non sans multiplicandum

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

------------------
essentitia preter non sans multiplicandum

[Redigerat av LarsG den 12 nov 2001]

Medlem sedan dec. 2000399 inlägg
#7

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

------------------
mvh André

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