问题描述:
一张表,id为主键,现在在数据库中插入数据,如果存在firstName、lastName相同的数据,则更新count,不存在这插入数据。
例如:已有数据中,已存在 firstName 为 Jack,lastName 为 Li 的数据,则原有数据不新增,只修改count。
我尝试过使用ON DUPLICATE KEY UPDATE函数,但是我发现这个函数貌似只能根据插入的数据中第一个字段做判断。
请高手们多多指点。CREATE TABLE `test` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`firstName` varchar(20) DEFAULT NULL,
`lasetName` varchar(20) DEFAULT NULL,
`job` varchar(255) DEFAULT NULL,
`phone` varchar(255) DEFAULT NULL,
`count` int(11) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;INSERT INTO `test` (`id`, `firstName`, `lasetName`, `job`, `phone`, `count`) VALUES ('1', 'Jack', 'Chen', '演员', '110', 100);
INSERT INTO `test` (`id`, `firstName`, `lasetName`, `job`, `phone`, `count`) VALUES ('2', 'Jack', 'Li', '演员', '110', 200);DROP TABLE test;
一张表,id为主键,现在在数据库中插入数据,如果存在firstName、lastName相同的数据,则更新count,不存在这插入数据。
例如:已有数据中,已存在 firstName 为 Jack,lastName 为 Li 的数据,则原有数据不新增,只修改count。
我尝试过使用ON DUPLICATE KEY UPDATE函数,但是我发现这个函数貌似只能根据插入的数据中第一个字段做判断。
请高手们多多指点。CREATE TABLE `test` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`firstName` varchar(20) DEFAULT NULL,
`lasetName` varchar(20) DEFAULT NULL,
`job` varchar(255) DEFAULT NULL,
`phone` varchar(255) DEFAULT NULL,
`count` int(11) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;INSERT INTO `test` (`id`, `firstName`, `lasetName`, `job`, `phone`, `count`) VALUES ('1', 'Jack', 'Chen', '演员', '110', 100);
INSERT INTO `test` (`id`, `firstName`, `lasetName`, `job`, `phone`, `count`) VALUES ('2', 'Jack', 'Li', '演员', '110', 200);DROP TABLE test;
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货