Mysql,检查数组是否存在(线程中的参与者)

时间:2012-08-05 00:24:54

标签: 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,有数百个线程。

1 个答案:

答案 0 :(得分: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