2013-06-22 61 views
0

我的MySQL查詢數據插入到MySQL有多個唯一鍵

$db->query("INSERT INTO customers (first_name,last_name,address,city,state,zip,phone,dnc,user_id) 
VALUES ('$firstname','$lastname','$address','$city','$state','$zip','$phone','$dnc','$userid') ON DUPLICATE KEY UPDATE phone=phone"); 

什麼我做的是把客戶信息到數據庫中。我想確保每個客戶都插入數據庫一次。此查詢通過將電話號碼用作唯一密鑰起作用。現在我遇到的問題是我希望能夠在數據庫中擁有重複的客戶,但是每個用戶沒有重複的客戶。

在我的應用程序中,多個用戶擁有他們已添加的客戶,但他們無法看到其他用戶添加的客戶。我希望查詢不要只在user_id和phone已經在數據庫中時才插入。我嘗試添加

phone=phone AND user_id=$userid 

到查詢的結尾,但一直未能使其正常工作。 任何幫助,將不勝感激,謝謝。

+0

爲什麼難道你不撥打電話的結合,user_id說明UNIQUE索引? – hynner

+0

我剛纔在想,你的意思就像電話和用戶ID一樣,像電話一樣的字符串是5551231234和用戶ID是99它會是555123123499? – NateWiley

+0

不可以,你可以讓一個索引在多列上面 – hynner

回答

0

使用此查詢添加單獨的索引這兩個領域上面:

ALTER TABLE customers ADD UNIQUE `unique_customer` (user_id , phone) 
+0

好吧即時通訊錯誤,我將如何改變我的查詢反對? – NateWiley

+0

你能更具體一點嗎?什麼錯誤? – hynner

+0

我將查詢的結尾改爲ON DUPLICATE KEY UPDATE unique_lead = unique_lead,並在'字段列表' – NateWiley