2012-12-20 49 views
1

我在導入.csv文件的PHP文件中有以下MySQL語句。該聲明成功地忽略了確切的記錄匹配,但是我在表中記錄不完全準確的情況下得到了一些重複的記錄。我注意到,在發生重複的情況下,LATITUDE和LONGITUDE總是一樣的。有沒有辦法用某種WHERE語句來擴展這個,如果這兩個字段已經在表中匹配了,那麼也可以在導入時排除記錄?我試過各種各樣的WHERE嘗試並得到一個MySQL錯誤?MySQL在哪裏聲明的PHP插入忽略?

$query = "insert ignore into $databasetable values('$linemysql');"; 

回答

1

您可以直接在mysql中的多個列上添加唯一索引。

在MySQL中它會是這樣的(從內存2列...):

ALTER TABLE `your_table` ADD UNIQUE `some_name_like_position` (`LATITUDE` , `LONGITUDE`); 
+0

所以,如果我設置MLS_LISTING_ID,經度和緯度,例如主鍵都必須3不敵記錄被省略?如果MLS_LISTING_ID或(LATITUDE和LONGITUDE)匹配,是否可以省略? –

+1

@Rocco Taco是的,3的組合被定義爲獨特的,所以你不能添加具有完全相同的3個值的新行,但2個相同的和1個不同的人將進入。 – jeroen

+1

優秀。那是我的問題,我沒有說明MLS可能會有所不同。我將MLS設置爲主要,然後創建一個緯度/長度的索引,它的工作。非常感謝你的幫助! –