Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL] CONCAT_WS jak implode - da się tak ?
peter13135
post 6.12.2011, 16:46:14
Post #1





Grupa: Zarejestrowani
Postów: 1 447
Pomógł: 191
Dołączył: 26.03.2008

Ostrzeżenie: (0%)
-----


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.


--------------------
:)
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 5)
Adi32
post 6.12.2011, 17:13:50
Post #2





Grupa: Zarejestrowani
Postów: 348
Pomógł: 26
Dołączył: 8.10.2008
Skąd: Lublin

Ostrzeżenie: (0%)
-----


  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

Ten post edytował Adi32 6.12.2011, 17:14:30


--------------------
Wolałem języki z rodziny C ale poszedłem na łatwizne...
Go to the top of the page
+Quote Post
peter13135
post 6.12.2011, 17:18:15
Post #3





Grupa: Zarejestrowani
Postów: 1 447
Pomógł: 191
Dołączył: 26.03.2008

Ostrzeżenie: (0%)
-----


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

Ten post edytował peter13135 6.12.2011, 17:19:14


--------------------
:)
Go to the top of the page
+Quote Post
Adi32
post 6.12.2011, 17:24:40
Post #4





Grupa: Zarejestrowani
Postów: 348
Pomógł: 26
Dołączył: 8.10.2008
Skąd: Lublin

Ostrzeżenie: (0%)
-----


Faktycznie, mój błąd. Do tego chyba potrzebujesz GROUP_CONCAT lub GROUP_CONCAT_WS.


--------------------
Wolałem języki z rodziny C ale poszedłem na łatwizne...
Go to the top of the page
+Quote Post
peter13135
post 6.12.2011, 17:32:31
Post #5





Grupa: Zarejestrowani
Postów: 1 447
Pomógł: 191
Dołączył: 26.03.2008

Ostrzeżenie: (0%)
-----


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)


--------------------
:)
Go to the top of the page
+Quote Post
Adi32
post 6.12.2011, 17:40:18
Post #6





Grupa: Zarejestrowani
Postów: 348
Pomógł: 26
Dołączył: 8.10.2008
Skąd: Lublin

Ostrzeżenie: (0%)
-----


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...

Ten post edytował Adi32 6.12.2011, 17:51:24


--------------------
Wolałem języki z rodziny C ale poszedłem na łatwizne...
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 13.08.2025 - 23:16