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 回答