7

データベースからMD5でエンコードされた値の文字列を返そうとしていますが、結果が空白になります(nullではなく、空白になります)。このクエリを実行してみたところ、同じ結果が得られました。

SELECT MD5('test');

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

私は何が間違っているのですか?事故で無効にした設定はありますか?

4

1 に答える 1

9

MySQL v5.5.3 より前でMD5()は、バイナリ文字列を返しました。

デフォルトでは、MySQL Workbench はバイナリ文字列を表示しません (偶発的な誤解を避けるため)。ただし、出力グリッドにバイナリ文字列値を表示することは可能です: [表示] > [編集] > [設定] > [SQL エディタ] > [非バイナリ文字列BINARY/VARBINARYとして扱う]。

または、MySQL サーバーをアップグレードするか、結果を非バイナリ文字セットにトランスコードします。

SELECT CONVERT(MD5('test') USING utf8)
于 2013-01-18T01:14:14.297 に答える