2016-07-26 83 views
0

如果可能這樣做只是想知道:變量作爲列名的一部分

我有多個同名的列,除了最後一位數字:

ROUND1,Round2,Round3,Round4 ...等

我還定義一個變量,我需要手動更新,這取決於塔Id喜歡被考慮在所有我的查詢,而不是單獨地更新每一個(節省時間)

$round_number="4"; // round 4 selected for example here 

那麼這是一個我的疑問,我需要它來選擇由上面的變量定義的輪數,我嘗試這樣做:

SELECT *, sum(Round'$round_number') as round_total from mytable where group_name LIKE 'fighters%' group by side order by round_total desc 

如預期,上述查詢失敗...

任何幫助是受歡迎的

由於夥計 EDIT(如實際查詢)

$latest_week="4"; // UPDATE ALERT HERE 
$result = mysql_query("SELECT *, sum(SR) as SRT, sum(RS'. $latest_week . ')  as RST FROM na_july16_resources_v2 where group_name LIKE 'fighters%' group by side order by RST desc") 

或死亡(mysql_error());

+1

除非您知道潛在列的數量,否則您可能需要使用'dynamic sql'。如果你這樣做,那麼你可能會使用'case'語句來代替... – sgeddes

+1

如果每一輪都是一個單獨的列,那麼你肯定有錯誤的數據庫設計 – e4c5

+0

我一直都在想,@ e4c5。我應該把這些回合放在一起,不是嗎? – Naim

回答

1

您可以使用雙引號在字符串內部讀取變量。用雙引號(而不是單引號)的字符串被解析爲變量名稱。所以你可以這樣做來使用查詢中的變量:

"SELECT *, sum(Round$round_number) as round_total from mytable where group_name LIKE 'fighters%' group by side order by round_total desc" 

由於Jaime說你也可以只使用點連接字符串。

+0

它的工作!謝謝 :) – Naim

1

在PHP字符串中連接一個點。 $sql = 'SELECT *, sum(Round' . $round_number . ') as round_total from mytable where group_name LIKE \'fighters%\' group by side order by round_total desc'

+0

謝謝,@Jaime。我嘗試過,但仍然失敗,我確定我做錯了什麼,所以我編輯了我的問題,添加了實際的查詢,因爲希望你可能發現罪魁禍首...... – Naim

+0

你可以發佈該表的架構? – Jaime

+0

which1ispink得到它的權利,但謝謝你的答覆:) – Naim

相關問題