mysql中如何判断指定字段的重复数据则不插入?

tylrr123 2013-09-19 07:02:25
我有一个jiaoyi 表,有以下字段:
id (自增数字,主键)
buyer (顾客姓名)
price (价格)
discount (折扣)
updatetime (本条数据插入时间)


数据库里面已有很多数据,由于数据是从网络采集的,会有很多重复的数据,所以我想根据
buyer、price、discount 这三个字段来判断待插入的数据(A记录A)是否与数据库已有的数据(B记录)重复。
当 A记录 的这三个字段的内容与 B记录 同时都相同的时候,则不插入,否则插入。

注:id 与 updatetime 这两个字段不作为判断条件。

我的语句是

select 'buyer1','10','8','2013-09-19' from dual where not exists(select buyer,price,discount,updatetime from jiaoyi where buyer='buyer1')

但是好像不对啊,请问大伙应该怎么样写呢? 数据库是mysql,开发语言是c#。
谢谢。
...全文
2917 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
tylrr123 2013-09-20
  • 打赏
  • 举报
回复
引用 1 楼 rucypli 的回复:
建唯一索引 用ignore into插入数据
可以说详细点吗? 我新手,谢谢~~
ACMAIN_CHM 2013-09-20
  • 打赏
  • 举报
回复
在相关的例上创建一个唯一索引 create unique index ..
tylrr123 2013-09-20
  • 打赏
  • 举报
回复
终于解决了 总结一下,有几个方法: 方法一: 一句sql解决 insert into 表名(待插入字段1,待插入字段2,...,待插入字段n) select '张三','1',...,'袜子' from 表名 a where not exists(select 1 from 表名 b where b.判断条件字段1='张三' and b.判断条件字段2='1' and 判断条件字段n='23531172612') 方法2:使用INSERT INTO… ON DUPLICATE KEY UPDATE 链接: http://blog.zol.com.cn/2299/article_2298921.html http://blog.lyphp.com/archives/527 方法3:使用符合主键,多个判断条件字段组合成一个复合主键 链接: http://www.jb51.net/article/21382.htm 方法4:建唯一索引 用ignore into插入数据 方法5:使用存储过程,不知道mysql是否适用? 链接 http://bbs.csdn.net/topics/390316341 --------- 扩展讨论: 当数据达到上百万条的时候,以上几种方法,哪个方法的性能最佳?
rucypli 2013-09-19
  • 打赏
  • 举报
回复
建唯一索引 用ignore into插入数据

56,801

社区成员

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

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