2013-11-02 46 views
0

我試圖做一種我聊天的好友請求的,指數uniq的關鍵似乎並不工作

所以我設置表名爲cyb_user_friendlist

然後我把這樣的一些表:

1 id_friendlist int(11) AUTO_INCREMENT 
2 from   int(11)  
3 to   int(11)   
4 couple   varchar(11) 
5 accept   int(11)  
6 block   int(11) 

因此每個好友請求插入完成此表與發件人ID爲從和接收器的ID進入,而是要確保有一對夫婦只有一個要求我加入了一個名爲場夫婦,其中有從和與一個垂直的連接ical分離器|。這個字段有一個uniq鍵,因爲我想阻止多個記錄。

的唯一的事情是,它似乎並不工作,actualy我說我uniq的關鍵就在這領域和主鍵的id_friendlist,但它不工作,我可以給很多請求被通緝......

我請求$ sql中要做到這一點是以下之一:

$query = "INSERT INTO `cyb_users_friendlist` SET 
      `from` = {$from}, 
      `to` = {$to}, 
      `couple` = '{$from}|{$to}'"; 

我真的不知道我錯了...幫助

anykind將非常感激。

+0

不知道問題是什麼在這裏 – 2013-11-02 21:29:34

+0

麻煩的是,它也插入複製甚至與索引的唯一密鑰條目......我使用插入忽視也嘗試過,但它不工作 – user2506760

+0

你不需要'夫婦',你可以在2個領域添加一個獨特的索引。 ALTER TABLE'TABLE TABLE NAME' ADD UNIQUE'unique'('from','to') – 2013-11-02 21:34:09

回答

0

爲什麼添加另一個字段時,如果您只需添加唯一索引,就可以將兩個字段連接起來?

mysql combined unique keys

ALTER TABLE `YOUR TABLE` ADD UNIQUE `unique` (`from` , `to`) 
+0

不,因爲我需要有互惠的concat,所以如果有人給你發送朋友請求,就不能發送frienrequest,只是回答以前。 – user2506760

+0

然後你需要兩個索引: http://dev.mysql.com/doc/refman/5.0/en/multiple-column-indexes.html或者我只是不正確地理解問題。 – sanis

+0

不,因爲如果我添加兩個索引,這意味着一個用戶只能發送一個好友請求,而不是其他用戶。 – user2506760

0
$query = "INSERT INTO `cyb_users_friendlist` SET 
     `from` = $from, 
     `to` = $to, 
     `couple` = concat('$from','|','$to')'"; 
+0

我仍然有相同的結果,即使有一個唯一的鍵t允許多個記錄 – user2506760

+0

但是當你迴應你的查詢它看起來不錯? –

+0

是的,但它應該插入一次,現在我可以插入多少次我想要 – user2506760