比如说我有一个登录表单,它使用用户名和密码并对数据库进行验证。通常我会跑:SELECT username, password FROM tablename WHERE username = '$user' and password = '$pass' LIMIT 1;
这将返回一个我没用的结果集。我想要检查的是它是否存在于数据库中。是否有可以执行此操作的MySQL查询。
答案 0 :(得分:1)
SELECT EXISTS (SELECT 1 FROM tablename WHERE username = '$user' and password = '$pass') whatever_column_alias
如果存在则返回1,否则返回0。它比计数更快,因为它会在子查询命中后立即停止搜索。
您在子查询中选择的内容无关紧要。选择1只是我的习惯。
答案 1 :(得分:0)
您可以查看有多少用户拥有该凭据
SELECT count(*) as user_count
FROM tablename
where username = '$user' and password = '$pass'
结果是0
,然后登录失败。如果1
成功了。
答案 2 :(得分:0)
使用COUNT
:
SELECT count(*) as nb_user
FROM tablename
WHERE username ="username"
AND password = "password"