2011-12-10 80 views
1

我正在使用php,mysql和我想要做的事情是什麼 this鏈接說。MySQL(客戶要訂購)

在它打印W3Schools的例子:

NAME     ORDER NO. 
Ola Hansen    22245 
Ola Hansen    47475 
Ola Hansen    45854 

但我需要:

NAME     ORDER NO. 
Ola Hansen   22245, 47475, 45854 

它與數據處理上做PHP或者我需要改變對查詢東西.. ..?

由於提前,

尼基

回答

2

兩種方式都是可行的。

你可以在mysql中使用group_concat()(當然還有GROUP BY)。但請記住,該函數返回的數據的默認大小僅爲1024字節。

或者你可以用PHP數據處理做到這一點 - 有時它會變得更加靈活

+0

您可以使用'group_concat_max_len'增加'group_concat'的大小,但涉及配置更改 – Rippo

+0

您可以在運行時將其設置爲我相信。 –

2

嘗試GROUP_CONCAT

SELECT 
    `NAME`, 
    GROUP_CONCAT(CAST(`ORDER NO.` AS CHAR) SEPARATOR ', ') AS `ORDER NO.` 
FROM 
(
    -- your query 
) AS T1 
GROUP BY `NAME` 
0

它與數據處理上做PHP

是的,這是最好的方法。

+0

是的..那是我的問題。我怎麼能說在PHP {如果客戶的名字是與以前相同,然後打印只有訂單號。 ELSE打印下一個客戶名稱} – Nikitas

+0

用戶在結構'id','name','etc'的表'用戶'中擁有 –

+0

用戶應該在結構'id','name','etc' ,結構'user_id','order_no'的訂單。使用user_id你可以做所有事情,例如,你可以將數據收集到數組並使用它 –