在WHERE子句中确定区分大小写

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在WHERE子句中确定区分大小写相关的知识,希望对你有一定的参考价值。

例如,TableColumn可以包含形式NewnewNEW中的值,如何编写仅返回的查询

SELECT * FROM myTable
WHERE myColumn = 'New'

但不返回TableRows包含newNEW

答案

对于mysql,一个简单的选项是:

SELECT * FROM myTable
WHERE myColumn = 'New'
AND BINARY(myColumn) = BINARY('New');

第二个条件在逻辑上是足够的,但如果表很大(myColumn上的索引不能使用),则查询会变慢。 2个条件的组合允许索引用于第一个条件,然后过滤掉不匹配的情况。

另一答案

您可以在where子句中使用COLLATE

SELECT *
FROM myTable
WHERE myColumn COLLATE latin1_general_cs = 'New'
另一答案

使这个列区分大小写的最佳方法是更改​​此特定列,如果charset是UTF8更改它的整理以整理utf8_bin,在修改列后它搜索区分大小写。

即我有一个表名为people name name的人。

     alter table people 
     modify column name varchar(50) charset utf8 collate utf8_bin;

注意:你可以使用varchar数据类型到varbinary,它工作正常..

另一答案

SELECT * FROM users WHERE BINARY userid ='Rahul'; mysql不检查单词的情况所以在用户名或用户ID的情况下我们shouold需要检查案例也是为了更安全。我希望这能帮到您

以上是关于在WHERE子句中确定区分大小写的主要内容,如果未能解决你的问题,请参考以下文章

Laravel“where”子句默认不区分大小写?

如何在 oracle sql 数据库中使 WHERE 子句不区分大小写?

Laravel JSON where 子句不区分大小写

在带有 LINQ to XML 的 VB.NET 中,where 子句在属性值和字符串之间设置不区分大小写的比较

Laravel 7 / SQL不区分大小写的where子句

如何使用 case 语句来确定存储过程中的 from 和 where 子句?