我可以很容易地从表中选择我的所有列有:如何选择*并重命名列?
SELECT * FROM foo
但是,如果我想在foobar
列bar
重命名,我需要手动指定的所有字段。这使我的查询不稳健,如果将新列添加到表:
SELECT a,b,c,d,bar AS foobar FROM foo
有写类似
SELECT *, bar AS foobar from foo
我可以很容易地从表中选择我的所有列有:如何选择*并重命名列?
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;
但在这种情况下,你会得到两次吧:一个名字foobar
和其他与酒吧*
取得它..
你的回答很好,但正如你所说我会得到两列。所以我想我会等待一点作为另一个答案 – nowox
有没有其他的可能性,因为*总是获取所有列.. ,在这种情况下,你不能更简单的查询名称.. 如果你打算使用一些案件或其他任何东西,然后它会放慢.. –
有没有一种很好的方式来了解你在做什么。通常,最佳实践表明,出于性能原因,您应该避免使用SELECT * ...
。特别是因为你刚才指定的原因 - 比如说你在这个表中添加一个大的字段,这与查询无关。无论您是否需要,您仍然使用“*”检索数据。
至于您的查询,您可以做SELECT *, bar AS foobar from foo
- 但你会复制你的结果,因为你会跟你的新别名返回由名称原始列以及列。
希望这会有所帮助!
通常,大多数表格柱对于select语句并不重要。 我在过去的10年中有不同的病例,60%的大部分colums都未使用。
在我们这个时代,性能是开发者面临的最后挑战之一。
请在每种情况下测试与解释MySQL命令的性能的语句。
这应该是一个评论,而不是一个答案。 – Jakob
是的......你尝试过吗? – Siyual
@RaduGheorghiu使用select *没有任何问题。它在所有情况下可能都不是最佳的,但说永远不要使用它是错误的。 – Jakob
为什么不直接用alter来重命名该列? – Jakob