Mysql 如何选择*并重命名列?

Mysql 如何选择*并重命名列?,mysql,sql,Mysql,Sql,我可以轻松地从表中选择所有列,包括: SELECT * FROM foo 但是如果我想重命名foobar中的bar列,我需要手动指定所有字段。如果将新列添加到表中,这会使我的查询变得不健壮: SELECT a,b,c,d,bar AS foobar FROM foo 有没有可能写这样的东西 SELECT *, bar AS foobar from foo 是的,您可以执行以下操作: SELECT bar AS foobar, a.* from foo as a; 但在这种情况下,您将获

我可以轻松地从表中选择所有列,包括:

SELECT * FROM foo
但是如果我想重命名
foobar
中的
bar
列,我需要手动指定所有字段。如果将新列添加到表中,这会使我的查询变得不健壮:

SELECT a,b,c,d,bar AS foobar FROM foo
有没有可能写这样的东西

SELECT *, bar AS foobar from foo

是的,您可以执行以下操作:

SELECT  bar AS foobar, a.* from foo as a;

但在这种情况下,您将获得两次bar:一个是名为
foobar
的,另一个是名为
*
的bar获取了它。

要了解您想要的东西,并不是一个好方法。通常,最佳实践规定,出于性能原因,应避免
SELECT*…
。特别是由于您刚才指定的原因,比如您向这个表中添加了一个与当前查询无关的大字段。无论是否需要,您仍在使用“*”检索数据

对于您的查询,您可以执行
SELECT*,从foo中将bar作为foobar
——但您将复制您的结果,因为您将按名称返回原始列以及使用新别名返回的列


希望这有帮助

通常大多数表列对于select语句并不重要。 在过去的10年里,我有过不同的案例,其中60%的oft柱都没有使用过

在我们这个时代,性能是开发人员最后的挑战之一


请在任何情况下使用Explain MySQL命令测试语句的性能。

是。。。你试过运行它吗?@RaduGheorghiu使用select*没有问题。它可能并非在所有情况下都是最佳的,但它说人们永远不应该错误地使用它。Select*对于调试、测试、评估目的或信息收集来说都是很好的,因为它可以嵌入到生产代码中,我不建议您这样做…-->如果您需要表中的所有列查询信息\u架构以获取列表,这样您就不必全部重新键入。您的意思是“如果向表中添加了新列,这将使我的查询更加健壮”!以下是一些关于你的想法,答案很好,但正如你所说,我会得到两次专栏。因此,我想我会等待另一个答案。没有其他可能性,因为*总是获取所有列。。在这种情况下,您不能在更简单的查询中更改名称。。如果你打算使用一些案例或其他任何东西,那么它就会慢下来。这应该是一个评论,而不是一个答案。