2014-02-11 123 views
0

我想根據特定的格式安排一個數據,我使用查詢獲取數據。 我現在用的這個查詢得到的數據通過逗號分隔排列從mysql獲取的數據

SELECT count(*) as number ,SUBSTRING_INDEX(REPLACE(REPLACE(Links, "http://", ""), "www.", ""), '/', 1) AS domain 
FROM `encrypt` 
WHERE `Folderid`='8' 
group by domain 

從該查詢我得到的域名,如google.com和我提出從整個URL中提取出來,並通過使用域場rediff.com算我得到相同的域數量的結果一樣

domain  number 

google.com 2 
rediff.com 3 

如何使用MySQL來表示這種格式條款這個數據

google.com (2), rediff.com (3) 

,使其能像在一個新的領域以上假設arrange_data或如何使這可能通過PHP後得到的結果?

+1

有[GROUP_CONCAT()](https://dev.mysql.com/doc/refman/5.0/en/group-by-functions.html#function_group-concat),但你應該認真考慮在你的客戶中進行這種轉換。 –

回答

2

Alrighty,以便循環播放結果,格式化並將它們添加到數組中。然後用一個','來爆炸這個數組。

while ($row_get_domain_info = mysql_fetch_array($r_get_domain_info)) { 

    $result_array[] = $row_get_domain_info['domain'].' ('.$row_get_domain_info['number'].')'; 

} 

$result = implode(', ', $result_array); 

print $result; 
+0

其給implode錯誤 – user1001176

+0

警告:implode()[function.implode]:無效參數傳遞 – user1001176

+0

你可以'print_r($ result_array)'爆炸它之前,並確保它被正確設置?這個錯誤意味着你試圖破壞不是數組的東西。此外,請檢查以確保查詢返回結果並且它們適合您的程序。我只是編寫了變量名稱'$ row_get_domain_info'和'$ r_get_domain_info',因爲該代碼未包含在您的帖子中。我的例子不能用於複製/粘貼,除非你的名字恰好與我的名字相同。 – Quixrick

0
SELECT GROUP_CONCAT(CONCAT(domain,' (',number,') ')) 
FROM (
SELECT count(*) as number ,SUBSTRING_INDEX(REPLACE(REPLACE(Links, "http://", ""), "www.", ""), '/', 1) AS domain 
FROM `encrypt` 
WHERE `Folderid`='8' 
group by domain 
)AS P 
+0

它在BLOB中給出輸出。和只有一個領域:( – user1001176