instr与mysql版本,如何在MySQL的instr()中使用区分大小写?

The possible duplicate linked shows a query which is exactly like my current one sort of. However, I cannot find a way to make it a case sensitive match. :\

SELECT COUNT(*) FROM users WHERE INSTR(flags, 'T') > 0;

I get a count of 46 which is obviously wrong. It's counting every instance "T" in flags whether it's upper- or lower-case.

It works as according to the MySQL documentation. I found something in the MySQL docs that said to put an "@" symbol on a variable to make it a case sensitive match. However, I tried this on the @'T' to form the following query:

SELECT COUNT(*) FROM users WHERE INSTR(flags, @'T') > 0;

I get a count of zero.

Could anyone shed some light on this for me? :)

EDIT:

Forgot to mention, sorry. I also tried a LIKE '%T%' as the where-clause, which still failed and returns the same as (INSTR(flags, 'T') > 0);

解决方案

Tested,

SELECT binary 'AKkRBbagSsPpCtmxeGhUX' LIKE '%T%';

produces '0', as expected. According to the String Comparison documentation, LIKE performs a binary (thus, case-sensitive) comparison if either of its operands are binary.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值