我有一个函数,返回5个混合大小写字符。如果我对这个字符串进行查询,不管大小写,它都会返回值。

如何使MySQL字符串查询区分大小写?


当前回答

对于那些希望使用RLIKE或REGEXP与正则表达式进行区分大小写的比较的人来说,你可以使用REGEXP_LIKE()来匹配匹配类型c,如下所示:

SELECT * FROM `table` WHERE REGEXP_LIKE(`column`, 'value', 'c');

其他回答

好消息是,如果你需要进行区分大小写的查询,这很容易做到:

SELECT *  FROM `table` 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;

不使用=运算符,您可能希望使用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

对于那些希望使用RLIKE或REGEXP与正则表达式进行区分大小写的比较的人来说,你可以使用REGEXP_LIKE()来匹配匹配类型c,如下所示:

SELECT * FROM `table` WHERE REGEXP_LIKE(`column`, 'value', 'c');

不需要改变任何DB级别,只是你必须改变SQL查询它将工作。

的例子,

“SELECT * FROM <TABLE> where userId = ' ' ' + iv_userId + ' ' AND password = ' ' ' ' ' + iv_password + ' '";

二进制关键字将区分大小写。