2011-03-25 49 views
1

我想提出的第一個查詢是所有與用戶相關的ID的分隔字符串:棒MYSQL查詢結果劃分爲一個逗號

$DBH = getDBH(); 
$stmt = $DBH->prepare("SELECT id FROM list WHERE user = ?"); 
$stmt->bind_param("s",$userid); 
$stmt->execute(); 
$stmt->bind_result($ids); 
$stmt->fetch(); 
$stmt->close(); 

當前存儲在表如下:

ID   user 

1    example 
4    example 
7    example 
15   example 

在查詢之前,這些ID是未知的,與用戶關聯的id的數量將不斷增長和縮小。

所以我的問題是我如何可以查詢這些ID和他們堅持與逗號

前分隔每個ID的字符串: 1,4,7,15,等等,等等

編輯:使用組CONCAT()

$stmt = $DBH->prepare("SELECT GROUP_CONCAT(id) as id FROM list WHERE user = ? GROUP BY id"); 
$stmt->bind_param("s",$userid); 
$stmt->execute(); 
$stmt->bind_result($id); 

回答

1

看看GROUP_CONCAT()函數

普萊舍請注意,字符串可以採用的最大長度由group_concat_max_len()變量指定,默認情況下爲1024個字符。

你可以看到你的這個查詢

show variables like 'group%' 
+0

我一直在尋找到它,但我似乎無法得到它用一備查詢BTW工作,感謝您的幫助! – mcbeav 2011-03-25 23:17:38

+0

它不會引發任何錯誤,但不會顯示結果。 – mcbeav 2011-03-25 23:19:24

+0

您是否嘗試爲其分配別名?從表格中選擇group_concat(id)作爲ID ... – 2011-03-25 23:22:39