2

次のクエリは、md5 列の大文字と小文字を小文字から大文字に変更します。MD5 値は PHP の関数を介して提供さmd5()れ、HTML リンクで使用して $_GET データをサーバーに送信しています。なぜケースが変わるのですか?あるケースは他のケースよりも適切ですか? を使用して対処できることを理解していLOWER()ます。

http://sqlfiddle.com/#!2/414c8/1

CREATE TABLE myTable (
  id INT NOT NULL AUTO_INCREMENT,md5 BINARY(16),
  PRIMARY KEY (id) )
ENGINE = InnoDB;

INSERT INTO myTable(md5)VALUES(UNHEX("06fcf5b90b916bdc533e2badec396b90"));

SELECT id,HEX(md5) FROM myTable;

ID  HEX(MD5)
1   06FCF5B90B916BDC533E2BADEC396B90
4

2 に答える 2

1

大文字と小文字は変わりません。HEX()大文字を返すだけです。値が格納される方法には文字がまったく含まれていません。これは実際のバイナリ表現です。その列の「ケース」を保持する方法はありません。

後で変換を行いたくない場合は、いつでも列の幅を広げてテキスト自体を ( HEX/なしで) 保存できます。UNHEX

于 2013-09-29T14:15:04.417 に答える
0
select id, LOWER(HEX(MD5)) FROM myTable;
于 2015-12-02T09:51:21.393 に答える