Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql SQL-AND语句_Mysql_Sql - Fatal编程技术网

Mysql SQL-AND语句

Mysql SQL-AND语句,mysql,sql,Mysql,Sql,我有表1: 我需要知道谁的枚举谁知道HTML和访问只。这怎么可能呢 我试过: SELECT enum FROM table1 WHERE package="ACCESS" AND package="HTML" 但它没有给我任何答案,我确信应该有 提前感谢您需要比较不同行中的值,使其成为集合内集合子查询。以下是一个使用group by并具有以下功能的解决方案: having子句中的每个条件都计算每个值的匹配数。因为两者都需要,>0确保枚举至少有一个 请注意,我已将enum放在反引号中。Enu

我有表1:

我需要知道谁的枚举谁知道HTML和访问只。这怎么可能呢

我试过:

SELECT enum
FROM table1 
WHERE package="ACCESS" AND package="HTML" 
但它没有给我任何答案,我确信应该有


提前感谢

您需要比较不同行中的值,使其成为集合内集合子查询。以下是一个使用group by并具有以下功能的解决方案:

having子句中的每个条件都计算每个值的匹配数。因为两者都需要,>0确保枚举至少有一个


请注意,我已将enum放在反引号中。Enum是MySQL中的一个关键字。即使如此,也不需要反引号,因为它是解析器允许的少数没有反引号的单词之一。尽管如此,在这个上下文中看到这个单词看起来还是很奇怪,因此出现了倒勾。

您应该阅读表并按枚举分组,然后查看是否得到了该枚举所需的所有包而没有其他包

select enum
from table1
group by enum
having sum(package in ('ACCESS', 'HTML')) = 2
and sum(package not in ('ACCESS', 'HTML')) = 0
and count(*) = 2;
HAVING子句中的三个条件之一是多余的。删除您最喜欢的内容:-


该查询使用MySQL功能,其中true表达式的值为1,false表达式的值为0,因此您可以使用SUM来计算true表达式。

是,但是。。。。我需要的人谁只知道HTML和访问。如果他知道一个,那还不够/您希望枚举只包含HTML和ACCESS是什么意思?是否只想返回两个枚举,而不返回其他枚举?如果是这样,那么您的示例数据将不匹配。可能的话,它不是保留字!?!为什么要包括多余的条件?@bluefeet:我想展示这些选项。使用三个条件中的哪两个并不重要。这是品味的问题。但考虑删除哪一个甚至有助于理解这些表达式的实际作用:-
select enum
from table1
group by enum
having sum(package in ('ACCESS', 'HTML')) = 2
and sum(package not in ('ACCESS', 'HTML')) = 0
and count(*) = 2;