Kom ihåg mig?
Home Menu

Menu


MySQL: if exist update else insert

Ämnesverktyg Visningsalternativ
Oläst 2012-02-01, 00:09 #1
naak2803 naak2803 är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Jun 2011
Inlägg: 767
naak2803 naak2803 är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Jun 2011
Inlägg: 767
Standard MySQL: if exist update else insert

Hejsan, behöver en SQL-sats som denna (MSSQL), fast för MySQL.
Denna SQL-sats verkar inte fungera för MySQL

Kod:
IF EXISTS (SELECT * FROM Table1 WHERE Column1='SomeValue')
    UPDATE Table1 SET (...) WHERE Column1='SomeValue'
ELSE
    INSERT INTO Table1 VALUES (...)
tack i förhand!
naak2803 är inte uppkopplad   Svara med citatSvara med citat
Oläst 2012-02-01, 07:24 #2
najks avatar
najk najk är inte uppkopplad
Har WN som tidsfördriv
 
Reg.datum: Oct 2005
Inlägg: 1 224
najk najk är inte uppkopplad
Har WN som tidsfördriv
najks avatar
 
Reg.datum: Oct 2005
Inlägg: 1 224
kika på INSERT ... ON DUPLICATE KEY UPDATE ...
najk är inte uppkopplad   Svara med citatSvara med citat
Oläst 2012-02-02, 01:05 #3
Conny Westh Conny Westh är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Aug 2005
Inlägg: 5 166
Conny Westh Conny Westh är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Aug 2005
Inlägg: 5 166
Jag skulle gjort två helt olika SQL-satser, en update-sats och en Insert-sats:

Kod:
UPDATE Table1 SET (...) 
WHERE PK IN (SELECT PK FROM Table2 WHERE Column1='SomeValue'))
AND Column1='SomeValue'
Kod:
INSERT INTO Table1 VALUES (...)
WHERE PK NOT IN (SELECT PK FROM Table2 WHERE Column1='SomeValue'))
Det är visserligen en liten fullösning men den är enkel att förstå och funkar... Kör updaten först och sen inserten.

Senast redigerad av Conny Westh den 2012-02-02 klockan 01:09
Conny Westh är inte uppkopplad   Svara med citatSvara med citat
Oläst 2012-02-02, 09:26 #4
thorsells avatar
thorsell thorsell är inte uppkopplad
Medlem
 
Reg.datum: Feb 2004
Inlägg: 295
thorsell thorsell är inte uppkopplad
Medlem
thorsells avatar
 
Reg.datum: Feb 2004
Inlägg: 295
Hej,

Är det kanske REPLACE INTO som du letar efter? Tänk på att den inte är lika snabb som UPDATE och INSERT är..

Mer info:
http://dev.mysql.com/doc/refman/5.0/en/replace.html
http://www.mysqltutorial.org/mysql-replace.aspx
thorsell är inte uppkopplad   Svara med citatSvara med citat
Oläst 2012-02-04, 20:28 #5
pelmereds avatar
pelmered pelmered är inte uppkopplad
Har WN som tidsfördriv
 
Reg.datum: May 2010
Inlägg: 1 342
pelmered pelmered är inte uppkopplad
Har WN som tidsfördriv
pelmereds avatar
 
Reg.datum: May 2010
Inlägg: 1 342
Detta gör vad du efterfrågar och är den bästa och snyggaste lösningen. Den här queryn fungerar i MySQL, men inte i MSSQL tror jag.
Kod:
INSERT INTO Table1 (...) VALUES (...)  ON DUPLICATE KEY UPDATE (col1 = xxx, col2 = 'yyy',...)
pelmered är inte uppkopplad   Svara med citatSvara med citat
Svara


Aktiva användare som för närvarande tittar på det här ämnet: 1 (0 medlemmar och 1 gäster)
 

Regler för att posta
Du får inte posta nya ämnen
Du får inte posta svar
Du får inte posta bifogade filer
Du får inte redigera dina inlägg

BB-kod är
Smilies är
[IMG]-kod är
HTML-kod är av

Forumhopp


Alla tider är GMT +2. Klockan är nu 13:21.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson
 
Copyright © 2017