2013-01-18 12 views
7

私のデータベースから値のMD5エンコード文字列を返そうとしていますが、空白の結果(nullではなく空白のみ)を返します。 私はこのクエリを実行し、同じ結果を取得しようとしている:私は、などのMySQLサーバーは、MySQL Workbenchを、再起動しようとしたMD5関数が空の結果を返します

SELECT MD5('test'); 

をしかし、同じ結果を得ます。 別のデータベース/サーバで同じコマンドを実行しようとすると、ハッシュ文字列が正常に返されます。

私は間違っていますか?偶然に無効にした設定はありますか?

+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

ありがとうございました!同じWorkbenchを使用していて、データベース/サーバーが異なる場合、結果が奇妙です。 – JimmyJammed

+0

@JamesHickman:私の答えの最初の行を与えて奇妙な... – eggyal

+0

ああ、私はそれがIDEのためかもしれないと思った。良い説明! – Leigh

関連する問題