Mysql 检查表中的两个值

Mysql 检查表中的两个值,mysql,Mysql,我有一个简单的表,其中存储了一些与用户相关的数据 身份证件 id\u用户 id_func 1. 1. 1. 2. 1. 2. 3. 2. 1. 您可以通过聚合来实现这一点: SELECT COUNT(*) = 2 AS verifica FROM funz_abilitate WHERE id_user = 1 AND id_func IN (1, 2) 或: 如果每个用户都有重复的id\u funcs。 在MySql 8.0+中,我将使用一个CTE,它返回我搜索的id\u funcs,因

我有一个简单的表,其中存储了一些与用户相关的数据

身份证件 id\u用户 id_func 1. 1. 1. 2. 1. 2. 3. 2. 1.
您可以通过聚合来实现这一点:

SELECT COUNT(*) = 2 AS verifica 
FROM funz_abilitate 
WHERE id_user = 1 AND id_func IN (1, 2)
或:

如果每个用户都有重复的
id\u func
s。

在MySql 8.0+中,我将使用一个
CTE
,它返回我搜索的
id\u func
s,因此不需要写它们的数量:

WITH cte(id_func) AS (VALUES ROW(1), ROW(2))
SELECT COUNT(*) = (SELECT COUNT(*) FROM cte) AS verifica 
FROM funz_abilitate 
WHERE id_user = 1 AND id_func IN (SELECT id_func FROM cte)

请参阅。

它在mysql 8中也可以正常工作。非常感谢你给我上的课@LelioFaieta如果您使用的是MySql 8.0+请检查我编辑的答案中的3d查询。
WITH cte(id_func) AS (VALUES ROW(1), ROW(2))
SELECT COUNT(*) = (SELECT COUNT(*) FROM cte) AS verifica 
FROM funz_abilitate 
WHERE id_user = 1 AND id_func IN (SELECT id_func FROM cte)