2013-01-18 81 views
7

我想從我的數據庫返回一個MD5編碼的值的字符串,但它只是返回一個空白結果(不爲空,只是空白)。 我已經嘗試過運行此查詢,並得到同樣的結果:MD5函數返回空結果

SELECT MD5('test'); 

我試圖重新啓動MySQL服務器,MySQL工作臺等,但得到相同的結果。 如果我嘗試在不同的數據庫/服務器上運行相同的命令,它會返回哈希字符串就好了。

我在做什麼錯?有什麼設置讓我在事故中失效?

+0

你想運行在CLI(的mysql.exe)查詢? –

+0

不,我在mySQL工作臺上運行它。 – JimmyJammed

回答

9

在MySQL v5.5.3之前,MD5()返回了一個二進制字符串。

默認情況下,MySQL Workbench不顯示二進制字符串(以避免意外誤解);但是可以在輸出網格中顯示二進制字符串值:視圖>編輯>首選項> SQL編輯器>將BINARY/VARBINARY視爲非二進制字符串。

另外,無論是升級你的MySQL服務器或結果轉碼非二進制字符集:

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

謝謝,糾正它!奇怪的是,它顯示了使用相同的工作臺,但不同的數據庫/服務器時的結果。 – JimmyJammed

+0

@JamesHickman:我的答案的第一行並不奇怪...... – eggyal

+0

啊,我認爲這可能是由於IDE。很好的解釋! – Leigh