2013-01-18 7 views
7

Sto tentando di restituire una stringa codificata MD5 di un valore dal mio database, ma restituisce solo un risultato vuoto (non nullo, solo vuoto). Ho provato solo l'esecuzione di questa query e ottenere lo stesso risultato:La funzione MD5 restituisce il risultato vuoto

SELECT MD5('test'); 

Ho provato a riavviare il server MySQL, MySQL Workbench, ecc, ma ottenere lo stesso risultato. Se provo a eseguire lo stesso comando su un altro database/server, restituisce la stringa di hash bene.

Cosa sto sbagliando? C'è un'impostazione che ho disabilitato in caso di incidente?

+0

Hai provato a eseguire la query su CLI (mysql.exe)? –

+0

No, l'ho eseguito nel workbench mySQL. – JimmyJammed

risposta

9

Prima di MySQL v5.5.3, MD5() è stata restituita una stringa binaria.

Per impostazione predefinita, MySQL Workbench non visualizza stringhe binarie (per evitare errori di interpretazione errata); tuttavia è possibile visualizzare valori di stringa binaria nelle griglie di output: Visualizza> Modifica> Preferenze> Editor SQL> Tratta BINARY/VARBINARY come stringa di caratteri non binaria.

In alternativa, o aggiornare il proprio server MySQL o convertire il risultato a un set di caratteri non binario:

SELECT CONVERT(MD5('test') USING utf8) 
+0

Grazie per averlo corretto, strano che mostrasse il risultato quando si utilizzava lo stesso Workbench ma diversi database/server. – JimmyJammed

+0

@JamesHickman: Non è strano dato la prima riga della mia risposta ... – eggyal

+0

Ah, pensavo potesse essere dovuto all'IDE. Buona spiegazione! – Leigh