请教关于MySQL新增数据,不存在则新增,存在则更新的问题

沧海十一刀 2017-05-23 07:02:09
问题描述:
一张表,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;
...全文
1785 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
ACMAIN_CHM 2017-05-23
  • 打赏
  • 举报
回复
ON DUPLICATED 只能基于唯一键。 楼主可以将这个字段设置为复合唯一键。
沧海十一刀 2017-05-23
  • 打赏
  • 举报
回复
版主。。。。感谢版主回复。是这样的,我这个不是针对唯一主键进行操作的,是针对其中两个字段进行查询,如果存在同样的两个字段,就算数据重复。
ACMAIN_CHM 2017-05-23
  • 打赏
  • 举报
回复
引用
但是我发现这个函数貌似只能根据插入的数据中第一个字段做判断。 请高手们多多指点。
为个函数针对唯一键进行判断。

56,677

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧