2014-02-13 7 views
0

예를 들어 사용자 이름과 암호를 사용하여 데이터베이스에 대해 유효성을 검사하는 로그인 폼이 있습니다. 보통 나는 다음을 실행합니다 : SELECT username, password FROM tablename WHERE username = '$user' and password = '$pass' LIMIT 1;
이것은 사용하지 않은 결과 집합을 반환합니다. 내가 데이터베이스에 존재하는지 확인하고 싶었습니다. 이 작업을 수행 할 수있는 MySQL 쿼리가 있습니까?결과 집합을 반환하지 않는 MySQL 선택 쿼리

답변

1
SELECT EXISTS (SELECT 1 FROM tablename WHERE username = '$user' and password = '$pass') whatever_column_alias 

1을 반환 존재하는 경우, 0이 아닌 경우. 그것은 세는 것보다 빠르며, 하위 쿼리가 부딪 히자 마자 더 이상 검색을 멈추게합니다.

하위 쿼리에서 선택하는 내용은 중요하지 않습니다. 1을 선택하는 것은 단지 습관 일뿐입니다.

0

당신은 자격 증명

SELECT count(*) as user_count 
FROM tablename 
where username = '$user' and password = '$pass' 

결과가 0입니다 다음 로그인이 실패 얼마나 많은 사용자를 확인할 수 있습니다. 1이면 성공했습니다.

0

사용 COUNT :

SELECT count(*) as nb_user 
FROM tablename 
WHERE username ="username" 
    AND password = "password" 
관련 문제