2010-03-07 22 views
15

Necesito usar group_concat para compilar una lista de valores separados por comas, pero necesito que se cotejen los valores. ¿Cómo hago esto?Cómo citar valores utilizando group_concat

Este:

425,254,431,53,513,13,1,13 

se deben convertir a:

'425','254','431','53','513','13','1','13' 

Respuesta

33

Uso:

GROUP_CONCAT(CONCAT('''', your_column, '''')) 
+0

Gracias OMG Ponies. Esto funciona como un encanto. – jim

+0

Si mi subconsulta devuelve 1,2,3 en la primera fila y 3,4 en la segunda fila y 9,2 en la tercera para que no funcione, ¿puede proporcionarme algo más –

9

Puede citar los elementos antes de aplicar GROUP_CONCAT.

SELECT GROUP_CONCAT(CONCAT('\'', some_column, '\'')) 
FROM  some_table 
+0

+1: Primero fue –

+0

Gracias Max, estaba tratando de decidir a quién atribuirle mi crédito. Thaks mucho! – jim

18

Uso de MySQL función de cadena QUOTE.

GROUP_CONCAT(QUOTE(`foo`)) `bar` 

Esto manejará los casos cuando la cadena misma contenga un presupuesto.

+1

@OP? Haga esto como una respuesta aceptada. – nehemiah

+0

@itsneo La respuesta aceptada es lo que ayudó a OP a resolver el problema original. No es necesariamente la "mejor" solución. Use los votos para emitir su opinión sobre la mejor solución al problema. – Gajus