2012-05-16 63 views
0

我也碰到過這樣一個場景,我需要以「鑄造」函數的輸出作爲列名我想選擇:CAST函數輸出作爲列名

(SELECT 
LOWER(DATE_FORMAT(NOW(), '%b')) 
FROM lang_months 
WHERE langRef = lang_statements.langRef 
) AS month 

只是返回當前的月份是預計,但我希望這在這種情況下選擇名爲「可能」的列。

我該怎麼做?


謝謝,你的回答給了我一個主意。我只是將當前日期放入一個變量中,並在查詢中使用它,如下所示:

$ thisMonth = strtolower(date('M'));

(SELECT 
$thisMonth 
FROM lang_months 
WHERE langRef = lang_statements.langRef 
) AS month 
+0

看看與MySQL樞軸查詢。 – vyegorov

+0

哦,我的回答太遲了:) –

回答

1

這是不可能的。查詢到達MySQL時,必須知道實體的名稱。

最簡單的選擇可能是確定您使用的任何語言的列名,然後使用它。例如,在PHP:

$col = 'someAlias'; 
$query = "SELECT blah as `{$col}` FROM tbl"; 
0

我不認爲這是可能的。

你可以創建一個視圖,爲你的數據提供這個視圖,這樣你可以更直觀地查詢它,但是你仍然必須手工編寫這12個子查詢和別名。

0

這應該工作:

$month = LOWER(DATE_FORMAT(NOW(), '%b'));  // Results in 'may' 
$result = mysql_query('SELECT * FROM $month'); // Returns all records in table 'may'