mysql避免插入重复数据
我们在进行数据库操作的时候,有时候需要插入不重复的数据。所谓不重复的数据,可以是某个字段不重复,也可以是某几个字段重复。当然我们可以在插入之前先将数据库的数据查询出来,然后与将要插入的数据进行对比,如果出现一样的数据信息,那么就不进行插入,但是这种方法是不明智的。如果数据库的数据很多,那么必然影响到效率。最近在做一个项目的时候,出现了这种情况,其实我们可以使用sql语句帮助我们达到目的。下面就是我写的sql语句:
1 insert into question(path) select '$value' from DUAL where '$value' not in (select path from question)
因为我在PHP页面中使用的sql语句,所以$value是我申明的变量.其中DUAL表示在虚拟表中进行查询。这样一句SQL就能保证我在requestion表中不会插入相同的path。
如果你还想比较其他数据是否有重复,那么SQL语句的格式为:
insert into tablename(表名) (name1,name2.....)(要比较的字段名) select '$value1','$value2',......(要插入的真实数据) from DUAL where '$value1','$value2',......(要插入的真实数据) not in ( select name1,name2,....(要比较的字段名) from tablename(表名))
很简单吧?喵~~