Почему он выводит запятую между значениями? - PullRequest
1 голос
/ 11 октября 2011

ОБНОВЛЕННЫЙ SQL:

SELECT listTitle, listLength, listCmt, listDt,GROUP_CONCAT('',mBCFName,' ',mBCLName,' ',moAmt,'<BR>') AS mOfferInfo
FROM User U
INNER JOIN Listing L on (U.uID = L.uID)
INNER JOIN MerchantOffer MO ON (L.listID = MO.listID)
INNER JOIN Merchant M on (M.mID = MO.mId) 
GROUP BY listTitle
ORDER BY listDt DESC

Как мне сделать вывод этого кода ?? :

Title: Apple iPhone 4S
Comment: need this one quick!

15257 days 22 hours ago
Offer By: 
Diana Matthews 194.99
John Dickinson 185.99

Ответы [ 3 ]

3 голосов
/ 11 октября 2011

http://dev.mysql.com/doc/refman/5.0/en/group-by-functions.html#function_group-concat

Разделителем по умолчанию между значениями в группе является запятая («,»).

Если вам не нужна запятая, замените ее на что-то другое:

GROUP_CONCAT(' ',mBCFName,' ',mBCLName,' ',moAmt,'<br />' SEPARATOR '')

или вы можете просто использовать <br /> в качестве разделителя:

GROUP_CONCAT(' ',mBCFName,' ',mBCLName,' ',moAmt SEPARATOR '<br />')
1 голос
/ 11 октября 2011

Существует разделитель по умолчанию между объединенными значениями.Взгляните на описание GROUP_CONCAT().Чтобы «отключить» , между значениями, вы должны использовать SEPARATOR ''.

0 голосов
/ 11 октября 2011

В вашем SQL измените:

GROUP_CONCAT(' ',mBCFName,' ',mBCLName,' ',moAmt,'<br />')

до:

GROUP_CONCAT(mBCFName,' ',mBCLName,' ',moAmt,'<br />')
...