MySQL IF..ELSE 与子查询

标签 mysql sql syntax-error

我有一个疑问

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

我不知道出了什么问题,有人可以帮忙吗?

谢谢

最佳答案

INSERT
INTO    produkty (id_nokaut, name, ...)
VALUES  ('7507601876693181035', 'ASROCK 760GM-GS3', ...)
ON DUPLICATE KEY
UPDATE
        shop_count = VALUES(shop_count),
        offer_count = VALUES(offer_count),
        ...

关于MySQL IF..ELSE 与子查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10337973/

相关文章:

mysql添加列在名称后添加问号

mysql - 连接并使子表进入父表的新列

ruby-on-rails - 添加 Controller 时收到语法错误

python - 混淆复合Python语句的语法错误

python - 为什么在 Python 的 `continue` 子句中不允许 `finally`?

php - 如何使用 Doctrine (Symfony 4)将数据从mysql数据库获取到数据表中?

mysql - 通过 JDBC Realm 的 Tomcat 6.0 管理器身份验证

php - 如何通过将一个表中的 ID 与另一个表匹配来选择和更新一个表中的记录?

mysql - 如何添加多个外键?

sql - 不按顺序选择