mysql中如何判断指定字段的重复数据则不插入?
2015-05-19 09:32
295 查看
转自http://www.tc5u.com/mysql/2583956.htm
我有一个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#。
谢谢。
mysql 判断数据重复
------Solutions------
建唯一索引 用ignore into插入数据
------Solutions------
引用 1 楼 rucypli 的回复:
建唯一索引 用ignore into插入数据
可以说详细点吗? 我新手,谢谢~~
------Solutions------
终于解决了
总结一下,有几个方法:
方法一:
一句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
相关文章推荐
- mysql如何判断指定字段数据不重复
- 如何判断mysql中数据表中是否有相关字段——20120412
- 有多个字段组成的联合主键,如何判断数据是否重复?
- mysql如何防止插入重复数据?
- oracle sql 判断字段非空,数据不重复,插入多跳数据
- mysql 判断指定条件数据存不存在,不存在则插入
- mysql 存储过程判断重复的不插入数据
- mysql判断查询的字段的数据是否包含指定的字符串
- Mysql如何指定新插入的数据的起始自增主键id
- 如何字段是关键字的情况下向Mysql中插入数据
- 在Mysql和Oracle中如何删除字段中的重复数据
- 如何在MySQL的不指定列名称的前提下插入一整行数据
- MySQL入门--显示指定数据表的字段结构、插入指定字段的值(记录)、查看指定表中指定字段的所有记录
- MySQL为数据表的指定字段插入数据
- MySQL为数据表的指定字段插入数据
- mysql删除重复的数据,保留一条,根据多个字段判断。以及统计重复数据
- mssql 和 mysql的区别,让自动增长列自动递增就必须指定其他列名,mysql创建事务,如果插入的字符多余字段的值,会报错?截取插入?带输出参数的存储过程,带If else判断
- MySQL入门--显示指定数据表的字段结构、插入指定字段的值(记录)、查看指定表中指定字段的所有记录
- mysql 如何用一条SQL将一张表里的数据插入到另一张表 3个例子
- [MySQL FAQ]系列 -- 如何为一个数据表指定字符集