[MySQL] Update record met oude gegevens

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • ge-flopt
  • Registratie: Februari 2001
  • Laatst online: 14:26
Hoi Medetweakers,

Ik zit met het volgende. Ik denk dat het heel simpel moet zijn, maar ik kom er maar niet uit. Ik heb google en dergelijke al wel geprobeerd, maar denk dat ik met de verkeerde woorden het probeer. :(

Ik wil het volgende:
Ik heb een redelijk uitgebreide coppermine foto album. Ik heb hier een indeling gemaakt naar woorden, maar kom er achter dat sommige combinaties niet makkelijk zijn. Nu wil ik sommige "key-words" verplaatsen van de caption naar de title. Echter is de title al gevuld in sommige records.

Ik ben op zoek naar een manier om het record te updaten door middel van een combinatie te maken met oude en nieuwe gegevens.

Laten we zeggen dat er in het record (title) reeds boom staat en ik wil er bloem bij zetten, dat ik dan gewoon een update kan doen waardoor ik het toevoeg, en niet hoef te kijken naar wat er in staat. Het idee is dus simpel: Nieuwe waarde = oude waarde + Extra info. Echter is het niet altijd duidelijk wat er in het title record (oude waarde dus) staat.

Iemand een idee in welke richting ik het moet zoeken?

Acties:
  • 0 Henk 'm!

  • Taartvarken
  • Registratie: Januari 2007
  • Laatst online: 12-09 15:39
Kun je niet gewoon eerst alles ophalen, met PHP de extra info toevoegen en het dan weer terugknallen?

Acties:
  • 0 Henk 'm!

  • analog_
  • Registratie: Januari 2004
  • Niet online
update veldA = veldA+15 where id = 10;
edit: syntax kan fout zijn, je snapt het idee wel.

[ Voor 40% gewijzigd door analog_ op 06-04-2010 21:27 . Reden: reminder ]


Acties:
  • 0 Henk 'm!

  • HenkEisDS
  • Registratie: Maart 2004
  • Laatst online: 07:59
Lijkt mij ook het makkelijkst inderdaad.

select veld1 veld2 from tabel

foreach(bla bla as bla bla)
{
if veld 1 = gevuld { update veld 1 = veld 1+veld2}
if veld 1 = leeg {update veld 1 = veld 2}
}

Acties:
  • 0 Henk 'm!

  • ge-flopt
  • Registratie: Februari 2001
  • Laatst online: 14:26
Wil het zonder tussenkomst van PHP eigenlijk proberen.

Mr.SiS: werkt dat ook zonder de "where id=X" ? of aangepast, dus bv "where caption like "%bloem%""

Acties:
  • 0 Henk 'm!

  • marco_balk
  • Registratie: April 2001
  • Laatst online: 20-06 21:52
ge-flopt schreef op dinsdag 06 april 2010 @ 21:15:
Wil het zonder tussenkomst van PHP eigenlijk proberen.

Mr.SiS: werkt dat ook zonder de "where id=X" ? of aangepast, dus bv "where caption like "%bloem%""
Ja, dat werkt, maar onthoudt wel dat zonder WHERE clause alles geupdate wordt met de toevoeging.
HenkEisDS schreef op dinsdag 06 april 2010 @ 21:14:
select veld1 veld2 from tabel

foreach(bla bla as bla bla)
{
if veld 1 = gevuld { update veld 1 = veld 1+veld2}
if veld 1 = leeg {update veld 1 = veld 2}
}
Als je zoiets simpels wil als hierboven, kan dit ook in de query. Gewoon kijken met IFNULL (of ISNULL :) )

Acties:
  • 0 Henk 'm!

  • ge-flopt
  • Registratie: Februari 2001
  • Laatst online: 14:26
Soms zijn dingen zo simpel, maar kijk je er gewoon verkeer naar. Dank je.

Acties:
  • 0 Henk 'm!

  • Joolee
  • Registratie: Juni 2005
  • Niet online
Voor simpele bewerkingen in een tabel kun je gewoon een query gebruiken. Bijv. UPDATE `pages` SET pagecounter = pagecounter + 1

of in jouw geval kun je met een concatination operator of de concat functie twee of meer strings aan elkaar plakken.

Acties:
  • 0 Henk 'm!

  • ge-flopt
  • Registratie: Februari 2001
  • Laatst online: 14:26
Uiteindelijk werkte Joolee's concat het beste en het simpelst, thx!

Acties:
  • 0 Henk 'm!

  • Remus
  • Registratie: Juli 2000
  • Laatst online: 15-08-2021
WiertOmta schreef op dinsdag 06 april 2010 @ 21:11:
Kun je niet gewoon eerst alles ophalen, met PHP de extra info toevoegen en het dan weer terugknallen?
Waarom zo moeilijk, dit soort simpele dingen kan je echt gewoon met een enkele SQL query doen.
Pagina: 1