在SELECT Query中使用MD5()不会返回结果

时间:2017-11-15 13:26:27

标签: mysql md5

我在Laravel PHP应用程序中有这个查询,但是,我发现这个问题主要与MySQL而不是Laravel或PHP有关。这是查询:

SELECT id FROM users WHERE MD5('email')='9e1af6d8046e217984ea76bf489a64eb' AND password_md5='f3617237ac21562663a40608a85ea38d';

我只提供了电子邮件的md5哈希以及密码(也是md5-hashed),并且需要从{{1}中检索用户的id数据库。数据库中的MySQL 哈希,这就是我在声明中发现需要email的原因。但是,上面的查询在返回一个查询时不会返回任何结果。 是的,我确保哈希输入正确

我在尝试解决此问题时发现,MD5()未返回与实际电子邮件地址相同的MD5哈希值。我想知道我是否误用了SELECT MD5('users.email')函数,或者MySQL是否添加了任何东西,所以散列与我的PHP计算的散列不同。

1 个答案:

答案 0 :(得分:1)

如果它是列标识符,请删除email周围的引号。您只需要为字符串文字使用引号。

 SELECT id FROM users WHERE MD5(email)='9e1af6d8046e217984ea76bf489a64eb' AND password_md5='f3617237ac21562663a40608a85ea38d';