Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL] CONCAT_WS jak implode - da się tak ?
Forum PHP.pl > Forum > Przedszkole
peter13135
Chciałbym skleić dane z mysql oddzielając je przecinkiem, tak jak robi to implode... ale musi to być funkcja mysql. Mianowicie, mam takie zapytanie :
  1. SELECT p.*, count(o.id) AS num_orders, sum(o.refEarn) AS sum_orders
  2. FROM `partners` p
  3. LEFT JOIN `order` o ON o.ref=p.id AND o.refEarn>0
  4. GROUP BY p.id


no i tak jak count() zlicza, sum() sumuje, tak szukam funkcji która mi sklei stringi (dokładnie z kolumny o.id) oddzielając je przecinkami.

Da się tak ?
Jeśli tak, to proszę o pomoc.
Adi32
  1. SELECT CONCAT_WS(',',kolumna1,kolumna2,kolumna3)

Pierwszy parametr to separator a dalej to kolumny.

http://forum.php.pl/index.php?showtopic=46...amp;mode=linear
peter13135
przeczytaj proszę mój temat jeszcze raz.
Nie chce łączyć pól w rekordzie, tylko w kolumnie.

czyli jak mam tabelę z jedną kolumną
id
--
1
2
3
4
5

to chce dostać string 1,2,3,4,5
Adi32
Faktycznie, mój błąd. Do tego chyba potrzebujesz GROUP_CONCAT lub GROUP_CONCAT_WS.
peter13135
Dzięki za pomoc, o to mi właśnie chodziło wink.gif
To już kosmetyka, ale troche te przecinki mi kiepsko ustawia, mam np.
111,,112,
albo
91,

Wie ktoś jak to poprawić ? (w sumie można to zrobić po stronie php)
Adi32
W MySQL z oststnim zdaje się robi się to tak:


  1. substring_index(group_concat( bla bla bla separator ',' ),',',-1)


Więcej nic nie wiem...
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.