我想從我的數據庫返回一個MD5編碼的值的字符串,但它只是返回一個空白結果(不爲空,只是空白)。 我已經嘗試過運行此查詢,並得到同樣的結果:MD5函數返回空結果
SELECT MD5('test');
我試圖重新啓動MySQL服務器,MySQL工作臺等,但得到相同的結果。 如果我嘗試在不同的數據庫/服務器上運行相同的命令,它會返回哈希字符串就好了。
我在做什麼錯?有什麼設置讓我在事故中失效?
我想從我的數據庫返回一個MD5編碼的值的字符串,但它只是返回一個空白結果(不爲空,只是空白)。 我已經嘗試過運行此查詢,並得到同樣的結果:MD5函數返回空結果
SELECT MD5('test');
我試圖重新啓動MySQL服務器,MySQL工作臺等,但得到相同的結果。 如果我嘗試在不同的數據庫/服務器上運行相同的命令,它會返回哈希字符串就好了。
我在做什麼錯?有什麼設置讓我在事故中失效?
在MySQL v5.5.3之前,MD5()
返回了一個二進制字符串。
默認情況下,MySQL Workbench不顯示二進制字符串(以避免意外誤解);但是可以在輸出網格中顯示二進制字符串值:視圖>編輯>首選項> SQL編輯器>將BINARY/VARBINARY
視爲非二進制字符串。
另外,無論是升級你的MySQL服務器或結果轉碼非二進制字符集:
SELECT CONVERT(MD5('test') USING utf8)
謝謝,糾正它!奇怪的是,它顯示了使用相同的工作臺,但不同的數據庫/服務器時的結果。 – JimmyJammed
@JamesHickman:我的答案的第一行並不奇怪...... – eggyal
啊,我認爲這可能是由於IDE。很好的解釋! – Leigh
你想運行在CLI(的mysql.exe)查詢? –
不,我在mySQL工作臺上運行它。 – JimmyJammed