2012-10-19 4 views
2

가능한 중복 :
mysql case sensitive query대소 문자 구분 데이터베이스 쿼리

이 '는 데이터베이스의 것들에 일부 값을 확인하는 PHP 스크립트에서 일하고 있어요. 지금까지 나는 그것이 올바르게 작동한다고 생각했지만 문제를 발견했습니다.

쿼리가 특정 문자를 찾지 않습니다.

SELECT * 
FROM `facilitydb_login` 
WHERE 
facilitydb_login.`password` = 'PASS' 

암호가 PASS이기 때문에 나는 결과를 원한다 :이 쿼리를 사용 그래서 경우

. 하지만 패스 (소문자)를 채우면 동일한 항목이 반환됩니다.

어떻게 대소 문자를 구분할 수 있습니까?

+1

대소 문자를 구분하는 '대소 문자 구분'입니까? 어떤 데이터베이스 서버를 사용하고 있습니까? 그것은 MySql (당신이 PHP를 언급하기 때문에 꽤 일반적인 조합이기 때문에) 당신은 COLLATE를 사용할 수 있습니다 - http://dev.mysql.com/doc/refman/5.0/en/charset-collate.html – dash

+0

MySQL을 사용하고 있습니까? –

+0

예, 저는 MySQL을 사용하고 있습니다. @ 대시, 나도 몰라, 어떻게 볼 수 있니? – Mathlight

답변

6

가 사용한다 MySQL 데이터베이스를 사용하는 가정 민감한 열 케이스를 만들 수 대/소문자 구분 데이터 정렬, 예 :

SELECT * 
FROM `facilitydb_login` 
WHERE facilitydb_login.`password` collate latin1_general_cs = 'PASS' 

이름의 CS는 대소 문자가 구분된다는 것을 의미합니다.

+0

을 참조하십시오. 감사합니다. 나는 7 분 동안 대답을 표시 할 것이다 ;-) – Mathlight

2

당신은

당신이 선택 성명의 일부를 확인하려면

ALTER TABLE facilitydb_login 
CHANGE password `password` VARCHAR(100) BINARY NOT NULL; 

또는 다음

SELECT * 
FROM `facilitydb_login` 
WHERE BINARY 
facilitydb_login.`password` = 'PASS'