假设当前mysql数据库中有个表:sysuser
有个字段是:sysUseName
字段中有条记录的内容是:robin
请看下面这两个SQL语句:
SELECT * from sysuser s where s.sysUseName = 'robin'
SELECT * from sysuser s where s.sysUseName = 'robin空格'
SELECT * from sysuser s where s.sysUseName = 'RoBin空格'
这三条语句均可以查询出那条记录。
官方文档上说是MySQL校对规则属于PADSPACE,对CHAR和VARCHAR值进行比较都忽略尾部空格,和服务器配置以及MySQL版本都没关系。
MySQL 安装目录下有个doc目录(Windows),里面的 Data Types -> String Types -> The CHAR and VARCHAR Types 这一小节有对这个问题的说明以及相关的例子(版本不一样可能章节的编号可能有变动,还是看标题吧): All MySQL collations are of type PADSPACE. This means that all CHAR and VARCHAR values in MySQL are compared without regard to any trailing spaces.
这样带来的问题是:我如何需要精确匹配robin这个内容?假设有一个登陆功能,我希望用户输入‘robin’可以登陆,但是输入‘robin空格’却不能登录,该如何实现。
解决办法如下:
SELECT * from sysuser s where s.sysUseName = BINARY 'robin '
BINARY不是函数,是类型转换运算符,它用来强制它后面的字符串为一个二进制字符串,可以理解为在字符串比较的时候区分大小写,精确匹配。
另外,因为有的MySQL特别是4.*以前的对于中文检索会有不准确的问题,可以在检索的时候加上binary。
相关推荐
在MySQL数据库中,有时我们需要处理存储在单一字段内的多个值,这时就涉及到字符串的分割操作。这个场景在处理如CSV格式的数据或者存储一串相关但独立的信息时尤为常见。本篇将详细介绍MySQL中的字符串分割技术及其...
在MySQL数据库中,当我们在进行查询操作时,可能会遇到一种情况,即字符串查询条件的尾部有空格,但查询结果仍然能匹配上原本没有空格的记录。这个问题源自于MySQL的校对规则,它涉及到字符串类型数据的比较方式。 ...
MySQL字符串函数是数据库操作中非常关键的一部分,它们用于处理和操作文本数据。以下是一些常见的MySQL字符串函数及其详细解释: 1. `ASCII(str)`:这个函数返回字符串`str`的第一个字符的ASCII码值。如果`str`为空...
在MySQL中,数值与字符串之间的比较是一个常见的操作,特别是在处理包含混合数据类型的列时。这里的例子涉及到了将数值条件应用于字符串类型的字段,如`uid`。这种比较可能会导致意想不到的结果,因为MySQL会尝试...
MySQL中的字符串处理函数是数据库操作中非常常用的一类函数,它们可以帮助我们对字符串进行各种操作,如拼接、截取、查找、转换等。以下是对这些函数的详细说明: 1. **ASCII(char)**:返回字符串中第一个字符的...
MySQL中的字符串函数是数据库操作中不可或缺的一部分,它们用于处理和操作文本数据。下面将详细介绍这些常用的字符串函数: 1. **CONCAT(str1, str2,...)**:此函数用于连接两个或多个字符串,形成一个新字符串。...
在上面的示例中,CONCAT_WS 函数将三个字符串连接起来,并使用逗号和空格作为分隔符。 CONCAT 函数和 CONCAT_WS 函数的区别 CONCAT 函数和 CONCAT_WS 函数都是用于字符串拼接的函数,但是它们之间有着一些区别: ...
以下是一些重要的MySQL字符串函数的详细说明: 1. ASCII(str): 这个函数返回字符串`str`的第一个字符的ASCII码值。如果`str`为空字符串,它返回0;如果`str`为NULL,它返回NULL。例如,ASCII('M')返回50。 2. BIN...
`trim()`方法是一种广泛应用于多种编程语言(如Java、C#等)及数据库管理系统(如Oracle、MySQL等)中的函数,用于移除字符串开头或结尾处的空白字符。这里的“空白字符”通常包括空格、制表符、换行符等不可见字符...
在MySQL数据库中,字符串函数是非常重要的组成部分之一,它们可以帮助我们有效地管理和操作数据中的文本部分。对于任何从事数据库管理、数据处理或数据分析的人来说,熟练掌握这些函数都是必不可少的技能。本文档将...
在SQL(结构化查询语言)中,字符串函数是用于处理文本数据的重要工具。它们可以帮助我们进行各种操作,如提取、转换、格式化和比较字符串。本篇将详细讲解一些常用的SQL字符串函数,以便你在数据库操作中更加...
这些基本的字符串操作是SQL查询中不可或缺的部分,无论是在简单的数据检索还是复杂的业务逻辑处理中,都能发挥重要作用。理解并熟练运用这些函数和操作符,能够帮助我们更有效地处理和操作数据库中的文本数据。通过...
2.2、按条件查询 (1) 比较运算符 > , ,= , != (),>= , [sql] view plain copy select * from STUDENT where STU_AGE>13; in(v1,v2..vn) ,符合v1,v2,,,vn才能被查出 IN关键字可以判断某个字段的值是否在...
这些连接字符串的编写时需注意大小写、空格和特殊字符。不同的数据库可能还需要额外的连接参数,如字符编码、服务器版本等。在实际应用中,确保正确配置这些参数,以确保数据库连接的顺利建立。 总结来说,JDBC和...
首先,replace函数是MySQL中的字符串函数,用于在字符串中查找指定的子字符串并替换为另一个字符串。replace函数的基本语法是replace(对象,搜索,替换),其中对象是要进行搜索和替换的字段,搜索是要被替换成字符串的...
在 MySQL 中,处理字符串拼接有几种非常实用的函数,它们分别是 `CONCAT()`、`CONCAT_WS()` 和 `GROUP_CONCAT()`。这些函数在数据库操作中经常用于构建复合字符串,以满足特定的需求。 1. **CONCAT() 函数** `...
- **CHAR**:固定长度字符串类型,例如定义为`CHAR(10)`时,不论存储的字符数量多少都会占据10个字节空间,不足的部分用空格填充。 - **VARCHAR**:变长字符串类型,根据实际存储字符数量占用空间,额外存储一个或...
在MySQL中,清理字符串首尾空白字符的问题是一个常见的需求,特别是在数据处理和比较时。由于输入数据可能存在不可预知的格式,例如包含了回车符(\r)、换行符(\n)或者多个连续的空格,这可能导致在进行字符串比对时...