2013-12-23 72 views
1

有沒有一種方法來「選擇*」,但特定於表?php mysql自動選擇別名表中的所有字段?

例如,我有兩個加入了兩個包含字段「測試」

SELECT 
    tableA.test AS tableA_test, 
    tableB.test AS tableB_test 
    ... repeat for a lot of duplicate column names 
FROM 
    tableA JOIN tableB 

我只想做

SELECT 
    tableA.* AS prefix_column('tableA_', *), 
    tableB.* AS prefix_column('tableB_', *) 
FROM 
    tableA JOIN tableB 

有沒有辦法實現這個表?

我使用的是PHP mysqli的,一個朋友告訴我使用fetch_array(),但我不知道他是什麼意思

希望已經明確... :)

聖誕快樂和新年快樂!

+1

不,不存在表格別名的簡寫。通常情況下,你不應該在生產代碼中使用SELECT *,最好是關於你需要的列。 –

+0

*好奇*;這是否適用於任何查詢,即使它不是別名相關或JOIN相關的? @MichaelBerkowski –

+0

@ Fred-ii-是否適用,我對'SELECT *'的建議?我會這樣說。框架通常會這樣做,但如果您是手動編碼SQL,我會避免它。 –

回答

1

在查詢中沒有辦法做你想做的事。

但是你可以很容易地創建列名,然後將其粘貼到查詢:

select concat('tableA.', column_name, ' as tableA_', column_name, ', ') 
from Information_Schema.columns c 
where table_name = 'tableA'; 

的結果是你想要的名稱,你可以將其粘貼到查詢。

相關問題