我有一個查詢的MySQL的if..else與子查詢
SELECT IF((select COUNT(*) from produkty where name='ASROCK 760GM-GS3' and id_nokaut='7507601876693181035' and found ='0')=0, (insert into produkty (
id_nokaut,
name,
shop_count,
offer_count,
price_min,
price_max,
price_avg,
url,
opis,
socket,
typ_pamieci,
co,
image_mini,
image_medium,
image_large,
rate,
thumbnail,
image,
found)
values(
'7507601876693181035',
'ASROCK 760GM-GS3',
'4',
'4',
'171,31',
'195,00',
'179,88',
'http://www.nokaut.pl/plyty-glowne/asrock-760gm-gs3.html',
'ASRock 760GM-GS3... ',
'false',
'false',
'plyta',
'http://nokautimg1.pl/p-da-99-da99e9e7b3eaebef049d1234fc5c15dc90x90/asrock-760gm-gs3.jpg',
'http://nokautimg1.pl/p-da-99-da99e9e7b3eaebef049d1234fc5c15dc130x130/asrock-760gm-gs3.jpg',
'http://nokautimg1.pl/p-da-99-da99e9e7b3eaebef049d1234fc5c15dc500x500/asrock-760gm-gs3.jpg',
'0.00',
'http://nokautimg1.pl/p-da-99-da99e9e7b3eaebef049d1234fc5c15dc90x90/asrock-760gm-gs3.jpg',
'http://nokautimg1.pl/p-da-99-da99e9e7b3eaebef049d1234fc5c15dc130x130/asrock-760gm-gs3.jpg',
'1')), (update produkty set id_nokaut = '7507601876693181035', shop_count = '4', offer_count = '4', price_min = '171,31', price_max = '195,00', price_avg = '179,88', url = 'http://www.nokaut.pl/plyty-glowne/asrock-760gm-gs3.html', opis = 'ASRock 760GM-GS3... ', socket = 'false', typ_pamieci = 'false', co = 'plyta', image_mini = 'http://nokautimg1.pl/p-da-99-da99e9e7b3eaebef049d1234fc5c15dc90x90/asrock-760gm-gs3.jpg', image_medium = 'http://nokautimg1.pl/p-da-99-da99e9e7b3eaebef049d1234fc5c15dc130x130/asrock-760gm-gs3.jpg', image_large = 'http://nokautimg1.pl/p-da-99-da99e9e7b3eaebef049d1234fc5c15dc500x500/asrock-760gm-gs3.jpg', rate = '0.00', thumbnail = 'http://nokautimg1.pl/p-da-99-da99e9e7b3eaebef049d1234fc5c15dc90x90/asrock-760gm-gs3.jpg', image = 'http://nokautimg1.pl/p-da-99-da99e9e7b3eaebef049d1234fc5c15dc130x130/asrock-760gm-gs3.jpg', found = '1' where name = 'ASROCK 760GM-GS3'));
我想在MySQL中執行它,但它給了MI錯誤:
ERROR 1064 (42000) at line 4: You have an error in your SQL syntax; check the ma nual that corresponds to your MySQL server version for the right syntax to use n ear 'into produkty ( id_nokaut, name, shop_cou' at line 1
我想不出什麼是錯的,任何人都可以幫忙嗎?
感謝
它看起來像你打算這樣做非常困難的辦法['REPLACE'(http://dev.mysql.com/doc/refman/5.0/en/replace。 html)或['INSERT ... ON DUPLICATE KEY UPDATE'](http://dev.mysql.com/doc/refman/5.0/en/insert-on-duplicate.html)。然而,如果你必須**使用IF,那麼你需要MySQL的['IF'語句](http://dev.mysql.com/doc/refman/5.5/en/if-statement.html) - 它不構成'SELECT'命令的一部分 - 而不是['IF'函數](http://dev.mysql.com/doc/refman/5.5/en/control-flow-functions.html#function_if)你目前正在使用(我知道,這很混亂!)。 – eggyal 2012-04-26 17:00:26