我想从表中选择匹配的确切单词,但我遇到了一个问题
如果行像:Angel和我确实从表中选择*,其中row =“angel”成功并且第一次
字母很小,而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
结果应该是虚假的
因为它的天使不是天使
所以任何解决方案
答案 0 :(得分:1)
您可以使用BINARY
。
SELECT * FROM `table` WHERE BINARY `row` = 'angel'
这将使区分大小写匹配。
答案 1 :(得分:1)
是的,这是由于您的表字段的整理。您应该将其设置为区分大小写的排序规则,通常以cs
1>为latin1_swedish_cs
后缀
答案 2 :(得分:0)
试试这个,
$r = mysql_fetch_row(mysql_query("SELECT ID FROM Login WHERE
Password = 'zxc' AND Username collate latin1_general_cs = 'angel'"));
答案 3 :(得分:0)
尝试
SELECT ID
FROM Login
WHERE Username = 'angel' COLLATE utf8_bin;
答案 4 :(得分: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");
现在它会起作用。
答案 5 :(得分:0)
尝试
SELECT ID
FROM Login
WHERE upper(Username) = upper('angel')