2013-08-22 64 views
0

我想選擇從表匹配確切的詞,但我有一個問題,即PHP MySQL查詢選擇匹配精確字

如果行這樣的:天使,我沒有SELECT * FROM表,其中行=「天使」它成功和第一

信小,以dB爲單位的資本,

$r = mysql_fetch_row(mysql_query("SELECT ID 
            FROM Login 
            WHERE Username = 'angel' 
            And Password = 'zxc'")); 
if($r[0]) 
    die("success"); 
else 
    die("failed"); 

In mysql Table 
Username : varchar(50) : Angel 
Password varchar(50) : zxc 

結果應falied

,因爲它的天使沒有天使

所以它

回答

0

嘗試像

SELECT ID 
FROM Login 
WHERE Username = 'angel' COLLATE utf8_bin; 
1

您可以使用BINARY了點。

SELECT * FROM `table` WHERE BINARY `row` = 'angel' 

這將做出區分大小寫的匹配。

1

是的,這是由於您的表字段的排序規則。你應該把它設置爲區分大小寫的排序規則通常與cs後綴像latin1_swedish_cs

0
mysql_query(" 
    ALTER TABLE `Login` 
    CHANGE `Username` `Username` VARCHAR(250) CHARACTER SET latin1 COLLATE latin1_swedish_ci NOT NULL 
");  

$r = mysql_fetch_row(mysql_query("SELECT ID FROM Login WHERE Username = 'angel' And Password = 'zxc'")); 
if($r[0]) 
    die("success"); 
else 
    die("failed"); 

現在,它會工作。

+0

你怎麼知道在這種情況下,用戶名是存儲在數據庫?它不會總是'ucfirst' –

0

嘗試像

SELECT ID 
FROM Login 
WHERE upper(Username) = upper('angel')