作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
/* Create a table called NAMES */
CREATE TABLE test(Id integer PRIMARY KEY, group text, content text);
/* Create few records in this table */
INSERT INTO test VALUES(1,'mygroup','foobar');
INSERT INTO test VALUES(2,'myothergroup','foobar');
INSERT INTO test VALUES(3,'myothergroup','foobaz');
INSERT INTO test VALUES(4,'gr1','foobaz');
INSERT INTO test VALUES(5,'gr0','foobaz');
COMMIT;
我有一个像上面那样的 SQL 表。
我想找到所有内容,即出现在所有开始我的组中的内容。
我的查询如下所示:
SELECT DISTINCT content from test WHERE group like 'my%' and content =
ALL(SELECT content from test WHERE group like 'my%');
这似乎是无效的,因为它什么都不返回,它应该返回 foobar,因为 foobar 存在于所有以 my 开头的可能组中。
例如:2
假设我想找到以 gr 开头的所有组中的所有内容:
SELECT DISTINCT content from test WHERE group like 'gr%' and content =
ALL(SELECT content from test WHERE group like 'gr%');
在这里,在这种情况下,它完全可以正常工作并返回 foobaz,因为 foobaz 存在于所有以 gr 开头的可能组中。
请帮忙。
最佳答案
你似乎想要:
select content
from test
where group like 'my%'
group by content
having count(distinct group) = (select count(distinct group) from test where group like 'my%');
关于mysql - 基于 ALL 或替代方法或其他更简单方法的 SQL 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50183883/
我是一名优秀的程序员,十分优秀!