2012-02-17 2 views
0

привет ребята это Возможное использование GROUP_CONCAT и функции CONCAT в одном запросе я пытаюсь использоватьс помощью CONCAT и функции GROUP_CONCAT в одном MySQL Query

SELECT GROUP_CONCAT(CONCAT(idmaterial,percent)) as 'material' FROM a_m where idarticle=1 

, чтобы получить результат, как это в одной строке один колонке

material 
---------- 
1 5%10 6%80 1%10 

пожалуйста, помогите мне с вашими идеями спасибо вот мой стол спасибо за ваш помогает

idarticle |idmaterial| percent 
    ---------- ---------- ---------- 
    1    5  10 
    ---------- ---------- ---------- 
    1    6  80  
    ---------- ---------- ---------- 
    1    1  10 
    ---------- ---------- ---------- 
    2    1  90 
    ---------- ---------- ---------- 
    2    2  10 
    ---------- ---------- ---------- 
+1

Просто для уточнения, GROUP_CONCAT() используется для сопоставления нескольких строк в одну строку с разделителями, в вашем case all idmaterial, где idartical = 1. CONCAT(), с другой стороны, используется для объединения строк вместе. CONCAT работает над строками, поэтому CONCAT ('string1', 'string2', 'string3') для создания string1string2string3, в то время как GROUP_CONCAT будет брать ваши строки выше и возвращать 5,6,1 (например) для idarticle = 1. Надеюсь, этот комментарий помогает объяснить разницу и почему они могут работать вместе :) –

ответ

3

GROUP_CONCAT идет с GROUP BY:

SELECT idarticle, 
    GROUP_CONCAT(CONCAT(idmaterial, '%', percent) SEPARATOR ' ') as materials 
FROM a_m 
GROUP BY idarticle 

И поставить в одну колонку вы можете использовать:

SELECT CAST(CONCAT(idarticle, ' ', 
    GROUP_CONCAT(CONCAT(idmaterial, '%', percent) SEPARATOR ' ')) AS CHAR) as material 
FROM a_m 
GROUP BY idarticle 
+0

спасибо, что почти все работает, но я получаю результат [BLOB - 7B] вместо процентных значений. У вас есть какая-то идея, что не так – user961885

+0

CAST (whateveryourfieldis AS CHAR) т.е. CAST (CONCAT (......) AS CHAR) в качестве материала –

+0

спасибо, благодарю вас, спасибо ... его работая спасибо много снова – user961885

Смежные вопросы