我有一个函数,返回5个混合大小写字符。如果我对这个字符串进行查询,不管大小写,它都会返回值。
如何使MySQL字符串查询区分大小写?
我有一个函数,返回5个混合大小写字符。如果我对这个字符串进行查询,不管大小写,它都会返回值。
如何使MySQL字符串查询区分大小写?
当前回答
不需要改变任何DB级别,只是你必须改变SQL查询它将工作。
的例子,
“SELECT * FROM <TABLE> where userId = ' ' ' + iv_userId + ' ' AND password = ' ' ' ' ' + iv_password + ' '";
二进制关键字将区分大小写。
其他回答
Mysql默认情况下不区分大小写,请尝试将语言排序规则更改为latin1_general_cs
不使用=运算符,您可能希望使用LIKE或LIKE二进制
// this returns 1 (true)
select 'A' like 'a'
// this returns 0 (false)
select 'A' like binary 'a'
select * from user where username like binary 'a'
在它的条件下,它会取a和不取a
要在使用BINARY之前使用索引,如果有大型表,可以这样做。
SELECT
*
FROM
(SELECT * FROM `table` WHERE `column` = 'value') as firstresult
WHERE
BINARY `column` = 'value'
子查询将生成一个非常小的不区分大小写的子集,然后选择其中唯一区分大小写的匹配项。
太好了!
我和你们分享一个比较密码的函数的代码:
SET pSignal =
(SELECT DECODE(r.usignal,'YOURSTRINGKEY') FROM rsw_uds r WHERE r.uname =
in_usdname AND r.uvige = 1);
SET pSuccess =(SELECT in_usdsignal LIKE BINARY pSignal);
IF pSuccess = 1 THEN
/*Your code if match*/
ELSE
/*Your code if don't match*/
END IF;
不需要改变任何DB级别,只是你必须改变SQL查询它将工作。
的例子,
“SELECT * FROM <TABLE> where userId = ' ' ' + iv_userId + ' ' AND password = ' ' ' ' ' + iv_password + ' '";
二进制关键字将区分大小写。