FAQ |
Kalender |
![]() |
#1 | ||
|
|||
Mycket flitig postare
|
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 (...) |
||
![]() |
![]() |
![]() |
#2 | |||
|
||||
Har WN som tidsfördriv
|
kika på INSERT ... ON DUPLICATE KEY UPDATE ...
|
|||
![]() |
![]() |
![]() |
#3 | ||
|
|||
Klarade millennium-buggen
|
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')) Senast redigerad av Conny Westh den 2012-02-02 klockan 01:09 |
||
![]() |
![]() |
![]() |
#4 | |||
|
||||
Medlem
|
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 |
|||
![]() |
![]() |
![]() |
#5 | |||
|
||||
Har WN som tidsfördriv
|
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',...) |
|||
![]() |
![]() |
Svara |
|
|