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

时间:2015-07-10 13:59:12

标签: mysql sql

我可以轻松地从表中选择我的所有列:

SELECT * FROM foo

但是,如果我想重命名bar中的列foobar,我需要手动指定所有字段。如果向表中添加了新列,这会使我的查询不健壮:

SELECT a,b,c,d,bar AS foobar FROM foo

是否有可能写出类似

的内容
SELECT *, bar AS foobar from foo

3 个答案:

答案 0 :(得分:7)

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

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

但是在这种情况下,你会得到两次吧:一个名字为foobar,另一个名为*,取得了它。

答案 1 :(得分:2)

这并不是一个很好的方式来获得你所追求的东西。通常,最佳实践要求您出于性能原因而避免使用SELECT * ...。特别是出于您刚才指定的原因 - 假设您向此表添加一个与手头查询无关的大字段。您仍然使用" *"检索数据。是否需要它。

至于您的查询,可以执行SELECT *, bar AS foobar from foo - 但您要复制结果,因为您将按名称返回原始列以及包含新别名的列。

希望这有帮助!

答案 2 :(得分:0)

通常,大多数表colums对select语句都不重要。 我在过去10年中遇到过不同的病例,大部分60%的病例都未使用过。

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

请在每个案例中使用Explain MySQL命令测试语句的执行情况。