SELECT *和SELECT ALL有什么区别吗?

8

基本上就是这样。我想知道有人是否会使用ALL而不是*,因为我正在构建自动化的SELECT查询。目前,如果有人想选择所有内容,查询将只使用*


https://dev.mysql.com/doc/refman/5.5/en/select.html - PaulF
1
@PaulF:您提供的链接是关于ALL关键字的比较,而不是关于SELECT语句的。 - HaveNoDisplayName
这是关于SELECT命令的MySQL文档 - 我认为OP应该作为理解ALL关键字的起点去查阅它。 - PaulF
1个回答

15

SELECT ALL 意味着所有行,包括重复行。(相反的是 SELECT DISTINCT,其中删除了重复行。)ALL 是默认值,大多数人只写 SELECT 而不是 SELECT ALL

SELECT * 意味着所有列。

注意:当涉及到例如 UNION 时,突然 DISTINCT 是默认值。 因此,只需使用 UNION 即可表示 UNION DISTINCT,即删除重复行。 在这里,您必须指定 UNION ALL 以保留重复行。


1
当您使用SELECT DISTINCT时,必须使用SELECT ALL和*。 - HaveNoDisplayName
1
那么 ALL 只是默认值吗?我必须承认我从未见过它。 - Tim Schmelter
1
是的,在“Order By Clause”中,“ALL”是默认值,“ASC”也是默认值。 - HaveNoDisplayName
@HaveNoDisplayName 那么 select all *select * 是一样的吗? - user4920811
1
@stack --- 是的..我有同感。 - HaveNoDisplayName
显示剩余4条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接