Domanda

Ho una domanda che utilizza il group_concat di MySQL su un campo intero.
Sto usando phpMyAdmin per sviluppare questa query. Il mio problema che invece di mostrare 1,2 che è il risultato del campo concatenato, ottengo [BLOB - 3B].

query è

SELECT rec_id,GROUP_CONCAT(user_id)
FROM t1
GROUP BY rec_id

(entrambi i campi sono unsigned int, entrambi non sono unici)

Cosa devo aggiungere a vedere i risultati effettivi?

È stato utile?

Soluzione 4

Appena sopra il risultato della query (a sinistra) si vedrà +options. Premere e marchio

  

Mostra contenuto BLOB

Altri suggerimenti

Sembra che group_concat si aspetta che il valore di essere una stringa. Ho appena incontrato lo stesso problema. Risolto convertendo la colonna int in una stringa in questo modo:

SELECT rec_id,GROUP_CONCAT(CONVERT(user_id, CHAR(8)))
FROM t1
GROUP BY rec_id

Ho pensato di condividere nel caso ve lo continui ad avere un problema con questo.

Secondo la documentazione MySQL , CAST(expr AS type) è SQL standard e dovrebbe quindi essere perferred. Inoltre, è possibile omettere la lunghezza della stringa. Pertanto, suggerirei il seguente:

SELECT rec_id, GROUP_CONCAT(CAST(user_id AS CHAR))
FROM t1
GROUP BY rec_id

Per quanto mi riguarda, questo ha aiutato (trovato in questo post sul blog ):

Nel mio caso il parametro GROUP_CONCAT era stringa ma la funzione ancora portato ad un BLOB, ma la conversione del risultato della GROUP_CONCAT funzionato.

CONVERT(GROUP_CONCAT(user_id) USING 'utf8')

Si può fare questo:

set session group_concat_max_len = 512;

Se group_concat_max_len è più di 512 la query restituirà byte []. Ma si può passare ad una stringa.

System.Text.Encoding.Default.GetString((byte[])DataTable.Rows[0][0]);

Se si ha accesso al file config.inc.php nella directory phpMyAdmin, poi Credo che la soluzione migliore è quella di cambiare questa linea:

$cfg['Servers'][$i]['extension'] = 'mysql';

a questo:

$cfg['Servers'][$i]['extension'] = 'mysqli';

Se avete l'estensione mysqli disponibile, usarlo. E 'più sicuro, un po' più ottimizzato, e gestisce il tipo BLOB di utf-8 meglio per impostazione predefinita. Il tuo [BLOB] voci dovrebbero iniziare a mostrare come i loro valori senza dover aggiungere in tutte le altre opzioni di configurazione speciale.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top