我可以很容易地從表中選擇我的所有列有:如何選擇*並重命名列?
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