查询具有多个条件的2个列的表

Bag*_*ani 3 sql sqlite performance android-sqlite

我有一个包含以下结构和示例数据的表:

在此输入图像描述

现在我想查询value等于#和的记录@.
例如根据上面的图像,它应该返回12

id
-----
1 
2    
Run Code Online (Sandbox Code Playgroud)

此外,如果该参数是@,#$它应该给我们1.因为只有id的记录1具有所有给定的值.

id
-----
1 
Run Code Online (Sandbox Code Playgroud)

Jam*_*D77 5

您可以使用分组,并且必须获取包含您要查找的项目数量的独特计数的不同ID

SELECT Id
FROM Table
WHERE Value IN ('#','$')
GROUP BY Id
HAVING COUNT(DISTINCT Value) = 2

SELECT Id
FROM Table
WHERE Value IN ('#','$','@')
GROUP BY Id
HAVING COUNT(DISTINCT Value) = 3
Run Code Online (Sandbox Code Playgroud)

SQL Fiddle 你可以用这个链接来测试