0

我想从表中选择匹配的确切单词,但我遇到了一个问题

如果行喜欢:天使和我确实从表中选择*,其中行=“天使”它成功并且首先

字母很小,大写为 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

结果应该失败

因为它的天使不是天使

所以任何解决方案

4

6 回答 6

1

你可以使用BINARY它。

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

这将进行区分大小写的匹配。

于 2013-08-22T04:55:00.110 回答
1

是的,这是由于您的表格字段的排序规则。您应该将其设置为区分大小写的排序规则,通常以cslike为后缀latin1_swedish_cs

于 2013-08-22T04:55:39.660 回答
0

尝试这个,

$r = mysql_fetch_row(mysql_query("SELECT ID FROM Login WHERE  
            Password = 'zxc' AND Username collate latin1_general_cs = 'angel'"));

读取区分大小写的数据库查询MySQL 区分大小写的查询

于 2013-08-22T04:53:48.307 回答
0

试试喜欢

SELECT ID
FROM Login
WHERE Username = 'angel' COLLATE utf8_bin;
于 2013-08-22T04:54:50.030 回答
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");

现在它将起作用。

于 2013-08-22T05:04:07.737 回答
0

试试喜欢

SELECT ID
FROM Login
WHERE upper(Username) = upper('angel')
于 2013-08-22T06:47:07.140 回答