Visa ett inlägg
Oläst 2013-11-06, 13:44 #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 Varför funkar inte denna SQL query?

Hej,
jag har lite problem med en query..

UPDATE OfferCode SET status = 1, usedDate = '2013-01-01' WHERE id = (SELECT id FROM OfferCode WHERE code = 'vip' ORDER BY usedDate LIMIT 1)

anledning till att jag väljer att göra så är att db har dubletter av samma "code", och då vill jag endast uppdatera den första raden.

dvs
Kod:
[dbo.OfferCode]
code     status     usedDate 
vip        0           2013-01-01
vip        0           2013-01-01
vip        0           2013-01-01
xxx       0           2013-01-01
yyy       0           2013-01-01
zzz        0           2013-01-01
ERROR [HY000] [MySQL][ODBC 5.1 Driver][mysqld-5.5.34]You can't specify target table 'OfferCode' for update in FROM clause

Det jag är ute efter att kunna uppdatera första raden med "code=vip" och sätta om statusen till "1"

Kod:
[dbo.OfferCode]
code     status     usedDate 
vip        1           2013-01-01
vip        0           2013-01-01
vip        0           2013-01-01
xxx       0           2013-01-01
yyy       0           2013-01-01
zzz        0           2013-01-01

Senast redigerad av naak2803 den 2013-11-06 klockan 13:49
naak2803 är inte uppkopplad   Svara med citatSvara med citat