2012-08-05 37 views
0

我有一個表像這樣:MySQL和檢查陣列組合存在(螺紋參與者)

| thread_id | user_id | 
+-----------+---------+ 
|  1  | 1 | 
|  1  | 2 | 
|  2  | 1 | 
|  2  | 3 | 
|  3  | 1 | 
|  3  | 3 | 
|  3  | 2 | 
      ... 

我將如何檢查是否一個數組組合存在且屬於同一個線程?

例:

1,3  => return true 
3,1,2 => return true 
1,4,2,3 => return false 

陣列可以包含幾百個ID的,與數以百計的線程thounds的。

回答

1
SELECT NULL 
WHERE EXISTS (
      SELECT NULL 
      FROM  your_table 
      WHERE user_id IN (1,2,3,4,..., ...) 
      GROUP BY thread_id 
      HAVING COUNT(*) = n 
     ) 

其中n是列表/數組中項目的計數。

然後在你的腳本:

  • 如果返回的行:true
  • 否則:false
+0

數組列表中的項目,很好的數目。謝謝。 – Sparkup 2012-08-05 00:36:16