「M上的PHP腳本,檢查一些值到數據庫中的那些工作。到目前爲止,我認爲它是正確的,但我發現了一個問題。
查詢不是尋找特定的字符。
所以,如果我使用此查詢:
SELECT *
FROM `facilitydb_login`
WHERE
facilitydb_login.`password` = 'PASS'
我想要的結果,因爲密碼是PASS。但是,如果您填寫通行證(小寫),則返回相同的條目。
我怎樣才能使它區分大小寫?
「M上的PHP腳本,檢查一些值到數據庫中的那些工作。到目前爲止,我認爲它是正確的,但我發現了一個問題。
查詢不是尋找特定的字符。
所以,如果我使用此查詢:
SELECT *
FROM `facilitydb_login`
WHERE
facilitydb_login.`password` = 'PASS'
我想要的結果,因爲密碼是PASS。但是,如果您填寫通行證(小寫),則返回相同的條目。
我怎樣才能使它區分大小寫?
你應該使用區分大小寫的歸類,例如
SELECT *
FROM `facilitydb_login`
WHERE facilitydb_login.`password` collate latin1_general_cs = 'PASS'
CS中的名稱表示它是區分大小寫的
謝謝你,做到了。我會在7分鐘內標出你的答案;-) – Mathlight
,你可以使列區分大小寫
假設你正在使用MySQL數據庫
ALTER TABLE facilitydb_login
CHANGE password `password` VARCHAR(100) BINARY NOT NULL;
或者如果你想在SELECT語句的一部分,那麼
SELECT *
FROM `facilitydb_login`
WHERE BINARY
facilitydb_login.`password` = 'PASS'
列的大小寫是否區分大小寫?你使用什麼數據庫服務器?你使用MySQL http://dev.mysql.com/doc/refman/5.0/en/charset-collate.html – dash
- 如果它是MySQL的(你提到的PHP所以這是一個相當常見的組合),可以使用COLLATE? –
是的,我正在使用MySQL。 @dash,我不知道,我怎麼能看到? – Mathlight