itbyc
ITbyc
采纳率50%
2018-05-08 07:55

Mysql批量查重后存储的实现求助

5
已采纳

求助大神,一个PHP+Mysql的项目,现从其他站点获取到了json,处理以后需要存到mysql,json里边最多可能会同时存100条数据。
本人思路:
insert into info_table (name,tel,info,time,url) values ('张三 ','15888888888','计算机系','1525765835','http://a.com,'),('李四 ','15888888881','计算机系','1525765835','http://b.com,');

但是我发现这样存储下来的结果是,如果数据库里边已经有号码tel相同的记录了,他还会再把它存下来,
tel在系统里边是唯一的,一个tel只有一条记录,所以批量存之前需要先查tel在数据库里边有没有存在,如果存在,就跳过(更新该记录的时间也行),如果不存在,就存储这条记录

表结构:
id,
name,
tel,
time,
url,
info

请求大神给一条sql解决这个问题

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

9条回答

  • tdcqfyl 木鱼大叔 3年前

    如果tel是唯一的,存在则更新,不存在则插入,可以用如下sql:
    insert into info_table (name,tel,info,time,url) values
    ('张三 ','15888888888','计算机系','1525765835','http://a.com,'),
    ('李四 ','15888888881','计算机系','1525765835','http://b.com,')
    on duplicate key update
    name=values(name),info=values(info),time=values(time),url=values(url)

    点赞 1 评论 复制链接分享
  • huixion 边缘颓废之 3年前

    试过了,这种可以 https://my.oschina.net/jsan/blog/270161/

    INSERT INTO table(field1, field2, fieldn) SELECT 'field1', 'field2', 'fieldn' FROM DUAL WHERE NOT EXISTS(SELECT field FROM table WHERE field = ?)

    点赞 2 评论 复制链接分享
  • wan15223392287 wan15223392287 3年前

    后台从数据库查询是否有相同的,有就存null,无就存原始数据,不一定要数据库下手,浪费

    点赞 评论 复制链接分享
  • weixin_42006902 weixin_42006902 3年前

    给这几个项做一个唯一索引,数据库就会替你拦住他们了

    点赞 评论 复制链接分享
  • qq_35282148 qq_35282148 3年前

    我觉得用程序去重吧,效率也高,再就是批量插入的话有条数限制的,初步可以定个1000条的批量插入。

    点赞 评论 复制链接分享
  • weixin_42060095 夜探寡妇村 3年前

    应该是这个吧INSERT INTO info_table ([Columns]) SELECT [Values] WHERE NOT EXISTS (SELECT * FROM info_table WHERE TEL ='xxx')

    点赞 评论 复制链接分享
  • a718089112 a718089112 3年前

    这种需求用程序处理更合理吧,就是根据号码去重数据再保存啊

    点赞 评论 复制链接分享
  • sinat_33640788 koonise 3年前

    可以的 insert into info_table ([Columns]) SELECT [Values] WHERE NOT EXISTS (SELECT * FROM info_table WHERE TEL ='q')

    点赞 评论 复制链接分享
  • zzm1219 别递烟哥不会 3年前

    INSERT INTO info_table ([Columns]) SELECT [Values] WHERE NOT EXISTS (SELECT * FROM info_table WHERE TEL ='xxx')

    点赞 评论 复制链接分享

相关推荐