我可以轻松地从表中选择我的所有列:
SELECT * FROM foo
但是,如果我想重命名bar
中的列foobar
,我需要手动指定所有字段。如果向表中添加了新列,这会使我的查询不健壮:
SELECT a,b,c,d,bar AS foobar FROM foo
是否有可能写出类似
的内容SELECT *, bar AS foobar from foo
答案 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命令测试语句的执行情况。