【问题标题】:Retrving data from MySql with case sensitivity [duplicate]以区分大小写的方式从 MySql 中检索数据 [重复]
【发布时间】:2013-12-17 00:20:45
【问题描述】:

我在 MySql 数据库中有一个登录表。 .在表中有一个 cname 列,其中一个值为“Raghu”。我的问题是当我将查询编写为

Select *from Login where cname='raghu';

然后它正在检索包含 'Raghu' 的记录。我希望它根据 case 检索。如何区分大小写检索表数据中的值。

【问题讨论】:

标签: mysql


【解决方案1】:

使用:10.1.7.7. The BINARY Operator

BINARY 运算符将其后面的字符串转换为二进制字符串。这是一种强制比较逐字节而不是逐字符进行比较的简单方法。

Select * from Login where  binary cname='raghu';

【讨论】:

  • 谢谢你,但是有没有任何默认选项,因为在项目中我必须对所有查询使用二进制文件,这有点乏味。
  • @RaghavendraM 实际上这是个好问题。但我认为没有任何标志可以使查询区分大小写。至少我不知道。
  • k 。 .你知道这行在查询中会做什么吗,/*!40101 SET character_set_client = utf8 */;此行用于创建表
  • @RaghavendraM 在 Mysql 中默认排序规则是不区分大小写的 - H 相当于 h 并且在 WHERE 子句中使用 BINARY 会强制匹配二进制排序规则,这在英语中意味着它通过字符代码匹配实际字符。阅读我在回答中给出的链接。
【解决方案2】:
SELECT * from Login WHERE STRCMP(cname,'Raghu')=0;

【讨论】:

  • 谢谢你,谢谢你的回复。 .
【解决方案3】:

你能试试这个吗,你可以在列名LOWER('cname')或值LOWER('raghu')中使用LOWERFUNCTION;

Select *from Login where LOWER(`cname`) = 'raghu';

【讨论】:

  • 谢谢你。它解决了我的问题。 .
猜你喜欢
  • 2013-01-23
  • 1970-01-01
  • 2011-12-13
  • 2013-04-01
  • 2019-08-17
  • 2011-08-10
  • 2011-04-13
  • 2013-09-26
  • 2013-10-18
相关资源
最近更新 更多