MySQL Forums
Forum List  »  Spanish

que hay con GROUP_CONCAT
Posted by: jorge alberto alonso cruz
Date: August 21, 2007 11:55AM

Tengo una tabla con dos campos (campo1 char 92 y campo2 char 10). El campo1 contendrá una lista de números separados por coma, y el campo dos el nombre por el que quiero agrupar.

Ej:
Fila 1: 10,03,04,12,14 unidad1
Fila 1: 06,05,08,11,14 unidad1
Fila 1: 14,08 unidad2
Fila 1: 09,06,08 unidad2
Fila 1: 19,24,14,19,26 unidad1
Fila 1: 30,03,09,22,14 unidad1

Necesito que los grupos contengan los números de las filas del campo1, pero sin repetir elementos, es decir, una lista con todos los números distintos que contiene ese campo en el grupo.

Si el campo tuviera un solo número se podría hacer con la función GROUP_CONCAT y su parámetro DISTINCT pero no es el caso

También he probado con lo siguiente:
Me cree esta función

CREATE FUNCTION `unicos`(cadena LONGTEXT)
RETURNS char(92) CHARSET utf8
NOT DETERMINISTIC
CONTAINS SQL
SQL SECURITY INVOKER
COMMENT ''
BEGIN
SET @pos = 1;
SET @result = '';
SET @str= CONCAT(cadena, ',');
REPEAT
SET @item= SUBSTR(@str, @pos, 3);
IF LOCATE(@item, @result)= 0 THEN
SET @result = CONCAT(@item, @result);
END IF;
SET @pos = @pos + 3;
UNTIL @pos >= LENGTH(@str) END REPEAT;
RETURN SUBSTR(@result, 1, LENGTH(@result)-1);
END;

A la cal le paso como parámetro el resultado de la función GROUP_CONCAT sobre el campo1 pero esto me da un error.

Alguna otra sugerencia

No puedo usar subquery

Options: ReplyQuote


Subject
Views
Written By
Posted
que hay con GROUP_CONCAT
5031
August 21, 2007 11:55AM
3113
August 21, 2007 03:13PM
3050
August 22, 2007 03:07AM
2523
August 22, 2007 01:33PM
2735
August 22, 2007 05:47PM


Sorry, you can't reply to this topic. It has been closed.

Content reproduced on this site is the property of the respective copyright holders. It is not reviewed in advance by Oracle and does not necessarily represent the opinion of Oracle or any other party.