`

MySQL中字符串比较以大小写无关方式按当前字符集

阅读更多
通常,MySQL中字符串比较以大小写无关方式按当前字符集(缺省为ISO-8859-1 Latin1)决定的排序次序实施。

CREATE TABLE T(
A VARCHAR(10)
);

对这个表,缺省情况下,下面两个查询的结果是一样的:

SELECT * FROM TABLE_NAME WHERE A='ABC';
SELECT * FROM TABLE_NAME WHERE A='Abc';

mysql不区分大小写,要使mysql在查询时区分大小写解决方法是:

在比较时加上 Binary 开关
SELECT * FROM TABLE_NAME WHERE BINARY A='ABC';
SELECT * FROM TABLE_NAME WHERE BINARY A='Abc';

或者在建表时候使用BINARY标示。

如下:
CREATE TABLE T(
A VARCHAR(10) BINARY
);

也可以在EMS中,表的属性页中勾选Birnary,为字段加上 Binary 属性。


MYSQL区分大小写的逆向操作!
也就是我从hbm配置文件导出数据库时,也要有这样的要求的做法。做法如下:
    在相应类别的配置文件的辅组数据库对象这一标签中,对数据库进行相应的修改。代码如下:
          <database-object>
    <create>      
       alter table WORD modify EN_CONTENT VARCHAR(60) CHARACTER SET utf8 COLLATE utf8_bin not null,    //和这个文件有关的配置。
         add constraint UNIQUE_SIBLINGS 
            unique (EN_CONTENT)        //修改映射
   </create>   
    <drop>   
alter table CATEGORY drop constraint UNIQUE_SIBLINGS   
    </drop>
</database-object>
注意点:1, 在<create>中如果有两个操作的方面,中间用逗号隔开,而且不能写两个alert这样的关键字,否则只能运行一个。
                2, 这里的<drop>标签,无论里面有没有数据,这个标签不能少。
分享到:
评论

相关推荐

    mysql字符集设置

    - 适当选择排序规则,如`_bin`用于区分大小写,`_ci`用于不区分大小写。 了解和正确设置MySQL字符集是确保数据正确存储和检索的关键,对于处理全球化数据的应用尤其重要。通过合理配置,我们可以避免乱码问题,...

    详解MySQL查询时区分字符串中字母大小写的方法

    MySQL查询时区分字符串中字母大小写的方法主要涉及字符集(character set)和校对规则(collation)。MySQL默认的行为是不区分字符串中的字母大小写,这可能会在某些场景下引起困扰,比如在需要严格区分大小写的...

    Mysql字符集

    校对规则决定了两个字符串的比较结果,是否区分大小写,以及特定字符的排序位置等。常见的校对规则后缀有_ci(大小写不敏感)、_cs(大小写敏感)和_bin(基于字符编码的二进制比较)。 #### 二、MySQL字符集的设置...

    mysql 查询时没有对字符串区分大小写处理方法

    在MySQL数据库中,字符串查询是否区分大小写主要取决于所使用的字符集(character set)和校对规则(collation)。字符集定义了数据的编码方式,而校对规则则规定了如何比较和排序这些字符。当你在进行SQL查询时发现...

    mysql字符集1

    排序规则定义了字符之间的比较方式,包括大小写敏感性、重音符号处理以及特殊字符的排序顺序。例如,二进制比较会按照字节的值进行比较,而忽略字符的语义;而字符大小比较则考虑了语言和文化习惯。 MySQL中有多个...

    mysql字符集与比对方法collation

    MySQL中的比对方法通常基于字符集,如'utf8_general_ci','ci'代表'Case Insensitive',表示不区分大小写;而'utf8_bin'则区分大小写并更关注字节级别的比较。 在SQL语句中,我们可以通过创建数据库、表或者列时...

    MySQL数据库字符集和整理[文].pdf

    在MySQL数据库中,字符集(Character Set)和排序规则(Collation)是两个重要的概念,它们关系到数据的存储和比较方式。字符集决定了数据库、表或列能支持的字符范围,而排序规则则定义了字符的比较和排序规则。...

    PHP 笔记001 - 字符串、正则表达式

    - 字符串函数如`strtoupper`、`strtolower`、`ucfirst`、`ucwords`、`substr`和`strtr`用于字符串的大小写转换、截取和替换。 - `iconv`和`mb_convert_encoding`函数可以用于字符串的编码转换。 - 字符串查找函数...

    Mysql字符串处理函数详细介绍、总结

    9. LENGTH(str):计算字符串str的字符数,不区分大小写。 10. LTRIM(str):删除字符串str左侧的空格。 11. POSITION(substr, str):返回子串substr在字符串str中首次出现的位置,如果不存在,返回0。 12. QUOTE...

    深入Mysql字符集设置分析

    MySQL中的字符集和字符序有特定的命名约定,如`utf8_general_ci`,其中`ci`表示大小写不敏感,`cs`表示大小写敏感,`bin`则表示基于编码值的比较。每个字符序都与特定的字符集关联,但一个字符集可以对应多个字符序...

    Mysql大小写敏感的问题

    MySQL数据库在处理字符串时对大小写的敏感性是一个重要的特性,特别是在跨平台操作时。这个问题主要涉及到表名、列名以及查询条件中的字符串匹配。 一、MySQL的大小写敏感性: 1. **创建表时的大小写敏感性**: ...

    查看三种MySQL字符集的方法(转).docx

    在此示例中,表`countries`使用的是`utf8_general_ci`,这是一种基于`UTF-8`编码的通用排序规则,大小写不敏感。 #### 三、查看MySQL数据列(column)的MySQL字符集 当需要检查表中的某一列是否使用了特定字符集时...

    MySql 5.1 参考手册.chm

    9.2.2. 识别符大小写敏感性 9.3. 用户变量 9.4. 系统变量 9.4.1. 结构式系统变量 9.5. 注释语法 9.6. MySQL中保留字的处理 10. 字符集支持 10.1. 常规字符集和校对 10.2. MySQL中的字符集和校对 10.3. 确定默认字符...

    mysql中关键字的使用.txt

    例如,在进行字符串比较时,如果不使用`BINARY`,那么默认情况下会根据当前设置的字符集和排序规则来确定是否区分大小写。而在某些应用场景下,比如密码验证,我们通常希望比较时完全一致,这时就可以使用`BINARY`...

    Mysql运行SQL语句中文乱码问题的解决方法

    2. **选择正确的校对规则**:校对规则决定了字符串的排序规则以及是否区分大小写。这里推荐使用`gbk_chinese_ci`,表示按照简体中文排序,并且忽略大小写。 示例创建数据库的SQL语句如下: ```sql CREATE DATABASE...

    MySQL 5.1中文手冊

    9.2.2. 识别符大小写敏感性 9.3. 用户变量 9.4. 系统变量 9.4.1. 结构式系统变量 9.5. 注释语法 9.6. MySQL中保留字的处理 10. 字符集支持 10.1. 常规字符集和校对 10.2. MySQL中的字符集和校对 10.3. 确定默认字符...

    MySQL数据库 中文设置

    `utf8_general_ci`是排序规则(Collation),表示不区分大小写且基于通用规则的比较。 3. **创建表**: 在已设定字符集的数据库中创建表时,同样需要指定中文支持的字符集: ``` CREATE TABLE mytable ( id ...

Global site tag (gtag.js) - Google Analytics