我写了这段代码,将多行插入数据库,我需要更新重复项。
INSERT INTO `me_cities`( `from`, `destination`, `price`, `updated`)
VALUES
('ERR','MRHD','91,000',now()),
('ERR','KIH','106,800',now()),
('ERR','SYZ','86,000',now()),
('ERR','AWZ','121,000',now()),
('ERR','IFN','116,741',now()),
('ERR','GSM','111,000',now()),
('ERR','NJF','141,000',now()),
('ERR','IST','351,000',now()),
('ERR','BND','116,000',now()),
('ERR','DEF','120,200',now()),
('ERR','','151,000',now()),
('ERR','BUZ','161,000',now())
ON DUPLICATE KEY UPDATE `price`=VALUES(price),`updated`=VALUES(now());
但我对此查询有错误。 如果 from 和 destination 字段与下一行相同,我需要更新该行。
答案 0 :(得分:1)
如果我得到你的主题,我认为你应该做这样的事情:
INSERT INTO `me_cities`( `from`, `destination`, `price`, `updated`)
VALUES
('ERR','MRHD','91,000',now()),
('ERR','KIH','106,800',now()),
('ERR','SYZ','86,000',now()),
('ERR','AWZ','121,000',now()),
('ERR','IFN','116,741',now()),
('ERR','GSM','111,000',now()),
('ERR','NJF','141,000',now()),
('ERR','IST','351,000',now()),
('ERR','BND','116,000',now()),
('ERR','DEF','120,200',now()),
('ERR','','151,000',now()),
('ERR','BUZ','161,000',now())
ON DUPLICATE KEY UPDATE `price`=VALUES(`price`),`updated`=VALUES(`updated`);
更新,如果你想更新每一个,首先使from和destination列唯一且相关的唯一键,就像这个查询
INSERT INTO `me_cities`( `from`, `destination`, `price`, `updated`)
VALUES
('ERR','MRHD','91,000',now()) ON DUPLICATE KEY UPDATE `price`='' ,`updated`=now() ;
INSERT INTO `me_cities`( `from`, `destination`, `price`, `updated`)
VALUES
('ERR','MRHD','91,000',now())ON DUPLICATE KEY UPDATE `price`='' ,`updated`=now() ;
答案 1 :(得分:0)
生成并执行此命令
UPDATE `me_cities` SET `price`='91,000', `updated`=now() WHERE EXIST (SELECT WHERE `from`='ERR' AND `destination`='MRHD` AND `price`='91,000' AND `updated`=now())