当前位置: 首页 > 面试题库 >

Mysql中区分大小写使用select where Query

何修能
2023-03-14
问题内容

嗨,我使用的是Java前端和Mysql后端,

其实在 tbl_test中 包含

name value
---------------
 abc   22   
 xyz   14   
 ABC   32   
 xyZ    4   
 ABc    4

在Java中,我尝试检索 abc的值, 因此编写了代码

ResultSet result=stmt.executeQuery("select value from tbl_test where name='abc'");
while(result.next())
{
     System.out.println("Answer : "+result.getInt(1));
}
result.close();

当前输出为

Answer :  22
Answer :  32
Answer :  4

实际上我只希望结果为“ abc”,即 答案:22

我也找到了结果,下面的代码

String name="abc";
ResultSet result=stmt.executeQuery("select name, value from tbl_test where name='"+name+"'");
while(result.next())
  {
    if(name.equals(result.getString(1))
       System.out.println("Answer : "+result.getInt(2));
  }
result.close();

现在我得到正确的输出,但是来自Java代码的此结果不在查询中,是否可以在查询中检索相同的结果…

谢谢


问题答案:

使用MySQLBinary运算符:

select value 
from tbl_test 
where CAST(name AS BINARY) ='abc';

SQL提琴演示



 类似资料:
  • 问题内容: 我有一个MySQL查询: 而且我的表使用MyISAM编码为utf8_general_ci。 搜索似乎区分大小写。 我不知道如何解决它。出了什么问题和/或如何解决? 问题答案: 尝试这个: 或(让您看到差异)

  • 问题内容: 我正在尝试提出一个要求区分大小写的结果的请求。 例如在我的数据库中 该请求是 但我有3行作为结果,我只想要abcdef 我试图找到一个解决方案 但是我有这个错误: 未知归类:’Latin1_General_CS_AS’{“成功”:false,“错误”:“#1273-未知归类:’Latin1_General_CS_AS’”} 谢谢 问题答案: 感谢您的帮助,我找到了不是latin1 ut

  • 问题内容: MySQL在默认的排序规则下运行几乎所有的字符串比较。我有不区分大小写的排序规则,需要运行不区分大小写的。有什么方法可以强制使用当前排序规则,而不是始终执行区分大小写的比较?我愿意升级MySQL(当前运行5.1)以获取更多功能… 问题答案: 如果不起作用,则需要创建另一个函数。

  • 问题内容: 她是我的问题,我想这真的很基础。 我正在尝试在数据库中查找是否存在一行。这是我的代码: 问题是,当我寻找“测试”时,它说不存在,即使我的数据库中有“测试”也是如此。 问题答案: 您可以使用: 或者,您可以使用以下两种方式将它们都转换为小写: 该示例最有效,您知道数据库中的所有数据已经​​是小写,然后可以执行: 与可以小写数据库中所有数据的情况相比,这将是一个便宜的比较。

  • 问题内容: 谁能告诉我默认情况下MySQL 查询是否区分大小写?如果没有,我将要发送什么查询,以便执行以下操作: 实际上,的真正价值是。 问题答案: 除非您进行二进制比较,否则它们 不区分大小写 。