2

这是检查 MySql 数据库中是否存在用户名和密码的最佳查询。

1)SELECT * FROM login_details WHERE username='username' AND password='password'
2)SELECT count(*)FROM login_details WHERE username='username' AND password='password'
3)SELECT count(Username)FROM login_details WHERE username='username' AND password='password'
4)SELECT 1 FROM login_details WHERE username='username' AND password='password'

谢谢

4

1 回答 1

11

希望'password'实际上是用户密码的加盐哈希,并且您将应用程序中的两个文字作为参数传递给准备好的语句

假设您有一个索引(username, password),“最佳”将是:

SELECT EXISTS (
  SELECT * FROM login_details WHERE username = ? AND password = ?
)

这样,一旦遇到单个结果,MySQL 就会停止搜索。

于 2012-11-27T09:44:29.683 回答