2012-10-19 75 views
2

可能重複:
mysql case sensitive query區分大小寫的數據庫查詢

「M上的PHP腳本,檢查一些值到數據庫中的那些工作。到目前爲止,我認爲它是正確的,但我發現了一個問題。

查詢不是尋找特定的字符。

所以,如果我使用此查詢:

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

我想要的結果,因爲密碼是PASS。但是,如果您填寫通行證(小寫),則返回相同的條目。

我怎樣才能使它區分大小寫?

+1

列的大小寫是否區分大小寫?你使用什麼數據庫服務器?你使用MySQL http://dev.mysql.com/doc/refman/5.0/en/charset-collat​​e.html – dash

+0

- 如果它是MySQL的(你提到的PHP所以這是一個相當常見的組合),可以使用COLLATE? –

+0

是的,我正在使用MySQL。 @dash,我不知道,我怎麼能看到? – Mathlight

回答

6

你應該使用區分大小寫的歸類,例如

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

CS中的名稱表示它是區分大小寫的

+0

謝謝你,做到了。我會在7分鐘內標出你的答案;-) – Mathlight

2

,你可以使列區分大小寫

假設你正在使用MySQL數據庫

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

或者如果你想在SELECT語句的一部分,那麼

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