Mysql 下面的sql语句有什么不同吗?

Mysql 下面的sql语句有什么不同吗?,mysql,sql,Mysql,Sql,我试过了,结果也一样,但我想确定一下,因为我正在重构一段使用第二个版本的代码,我很惊讶,因为它既要编写更长的代码,又不那么简单 这里有什么隐藏的东西吗 MySQL版本:5.5.29-0ubuntu0.12.04.2(Ubuntu)这两个语句在您的情况下是相同的 如果您在一个查询中连接多个表,则它们就不是了 SELECT * FROM table t SELECT t.* FROM table t 选择所有列 select * 选择表t的所有列(或指定别名t的表)语句相同。您只有一个名为“t

我试过了,结果也一样,但我想确定一下,因为我正在重构一段使用第二个版本的代码,我很惊讶,因为它既要编写更长的代码,又不那么简单

这里有什么隐藏的东西吗


MySQL版本:5.5.29-0ubuntu0.12.04.2(Ubuntu)

这两个语句在您的情况下是相同的

如果您在一个查询中连接多个表,则它们就不是了

SELECT * FROM table t
SELECT t.* FROM table t
选择所有列

select * 

选择表t的所有列(或指定别名t的表)

语句相同。您只有一个名为“t”的表“table”的别名。

SELECT*
将返回查询中所有表中的所有列
SELECT t.*
将返回名为或别名为,
t
的表中的所有列。在您的示例中也是如此,因为只涉及一个表

select t.*
把整张桌子还给我

从表中选择t.*作为t内部联接表2作为t2
将仅返回“table”表中的字段,而
从表中选择*作为t内部连接表2作为t2

将返回table和table2的字段,这两个语句将给出相同的结果,直到它与另一个表合并,并使用一些表运算符作为Join,应用于需要唯一标识此表中的列(更具体地说是不明确的列)的位置


作为最佳实践,您应该使用列名,而不是使用select*,因为它使代码更具可读性,并且前端代码不会在表结构在任何时候发生更改时中断。

严重吗?。。。。。“它们是一样的。”米奇麦我在我认为不重要的事情上看到了一些疯狂的陷阱,而且我不是DB工程师。有那么糟糕吗?
SELECT * FROM table t and SELECT t.* FROM table t