webForumDet fria alternativet

Kolla om värde redan finns?

Databaser & SQLur Databashanterare & SQL

5 svar · 243 visningar · startad av nybi

Medlem sedan nov. 200059 inlägg
Frågan#1

Ex; på db som jag har.

+_id_|_name_|_value_+
|_1__|_ett__|_2_____|

Om jag nu vill stoppa in: ex;
mysql_query("INSERT INTO table (name, value) VALUES ('ett', '3')");

så kommer jag att få
+_id_|_name_|_value_+
|_1__|_ett__|_2_____|
|_2__|_ett__|_3_____|

MEN jag skulle istället vilja ha resultatet:
+_id_|_name_|_value_+
|_1__|_ett__|_5_____|

Alltså att den kollar om 'name' redan finns, om den gör det så plussar den bara på 'value' till det 'name' som redan finns.

Hoppas att ni har förstått ;)

Det blir väl kanske lite php kodande men jag la det här i mysql iaf.

Medlem sedan apr. 2000642 inlägg
#2

har för mig att du kan skriva nått i stil med:

UPDATE TABLE tabell SET varde = varde +2 WHERE namn LIKE 'namn'

eller nått... :)

------------------
PeterSign v 2.3.36

Medlem sedan aug. 2000238 inlägg
#3

[r]ajda, fel tråd. denna post får mer än gärna plockas bort[/r]

[Redigerat av herq den 16 mar 2001]

Medlem sedan dec. 19991 749 inlägg
#4

Annars så kan du använda dig av REPLACE. Den uppdaterar om posten redan finns och lägger till om den inte finns.

------------------

"Information wants to be free -- because it is now so easy to copy and distribute casually -- and information wants to be expensive -- because in an Information Age, nothing is so valuable as the right information at the right time."
- John Perry Barlow

nanne.net

Medlem sedan dec. 200012 464 inlägg
#5

Så här ungefär

  $result = mysql_query("select 1 from tabell where name = '$name') or die(mysql_error('Issiken');
  if  ( mysql_numrows($result) > 0 ) {
      mysql_query("update tabell set val = val + $val where name = '$name') or die('Dissiken');
  } else {
      mysql_query("insert into tabell values('$name',$val) or die ('Dunkan dej');
  }

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

Medlem sedan dec. 200012 464 inlägg
#6

Replace har man väl inte så stor nytta av då man inte kan komma åt de värden som fanns där innan. Dvs man måste plocka upp dessa innan man gör replace.

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

131 ms totalt · 3 externa anrop · v20260731065814-full.4bcf49fe
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
128 ms — hämta tråd, inlägg och bilagor (db)