我們在進行數據庫操作的時候,有時候需要插入不重復的數據。所謂不重復的數據,可以是某個字段不重復,也可以是某幾個字段重復。當然我們可以在插入之前先將數據庫的數據查詢出來,然后與將要插入的數據進行對比,如果出現一樣的數據信息,那么就不進行插入,但是這種方法是不明智的。如果數據庫的數據很多,那么必然影響到效率。最近在做一個項目的時候,出現了這種情況,其實我們可以使用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(表名))
很簡單吧?喵~~
