`

MySQL查询时强制区分大小写的方法

 
阅读更多
MySQL查询时强制区分大小写的方法

平时很少会考虑数据存储需要明确字符串类型字段的大小写,MySQL默认的查询也不区分大小写。但作为用户信息,一旦用户名重复,又会浪费很多资源。再者,李逵、李鬼的多起来,侦辨起来很困难。要做到这一点,要么在建表时,明确大小写敏感(字段明确大小写敏感)。如果通盘数据库所有字段都需要大小写敏感,不如在字符集设置时做好调整。不过,通常不建议这么做。
   www.2cto.com 
如果跟我一样,数据库已经在线上跑了,一个表上百万条数据,做字段类型变更有可能导致数据库宕机。那么好吧,在查询时,多加个单词好了!

例如,一般查询:

Sql代码 
SELECT * FROM U WHERE name LIKE 'a%'; 
SELECT * FROM U WHERE name LIKE 'A%'; 
其结果是一样的,为了区分'A%'和'a%',可以这么做:

Sql代码 
SELECT * FROM U WHERE binary name LIKE 'a%'; 
SELECT * FROM U WHERE binary name LIKE 'A%'; 
仅仅多了一个binary,就可以得到不同的结果!
   www.2cto.com 
当然,如果需要建表时强制区分大小写,可以这么写:

Sql代码 
create  table  table_name(   
     name varchar (20) binary     
); 
就这么简单!

转自:http://www.2cto.com/database/201209/156617.html
分享到:
评论

相关推荐

    MySql查询不区分大小写解决方案(两种)

    本文将详细介绍两种解决MySQL查询不区分大小写问题的方法。 **方法一:使用BINARY函数** 在查询语句中,你可以使用BINARY函数来强制进行区分大小写的比较。BINARY关键字将字符串转换为二进制形式,从而进行字节...

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

    可以在查询语句中直接使用`BINARY`关键字来强制区分大小写,如: ```sql SELECT * FROM usertable WHERE BINARY id='AAMkADExM2M5NjQ2LWUzYzctNDFkMC1h'; ``` 2. 在创建表时设置: 创建表时,可以在字段定义中...

    解决MySQl查询不区分大小写的方法讲解

    在MySQL数据库中,查询操作默认情况下是不区分大小写的,这意味着如果你在查询时输入的字符串与数据库中的数据在大小写上不完全匹配,查询仍然可能返回结果。这在某些场景下可能会导致意料之外的问题,比如在用户...

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

    这样,`code`字段的比较将在查询时强制区分大小写。 3. 重建表并指定校对规则: 如果整个表都需要区分大小写,最佳做法是备份数据,然后重建表,并在建表语句中指定`_bin`校对规则,如: ```sql CREATE TABLE `...

    mysql表名忽略大小写配置方法详解

    在Linux系统中,默认情况下MySQL是区分大小写的,而在Windows系统中则通常是不区分大小写的。对于开发者来说,保持一致性是至关重要的,特别是在跨平台的应用中。本文将详细介绍如何在MySQL中配置表名忽略大小写,...

    使MySQL查询区分大小写的实现方法

    在MySQL中,数据库默认的查询行为通常是不区分大小写的,这在处理英文字符时可能会造成不便。特别是当你需要进行精确匹配,例如用户输入的用户名或密码必须与存储的值完全一致(包括大小写)时,就需要使查询区分大...

    MySQL大小写敏感导致的问题分析

    说明: MySQL 在 Windows 下不区分大小写,但在 Linux 下默认是区分大小写。因此,数据库名、 表名、字段名,都不允许出现任何大写字母,避免节外生枝。 正例: aliyun _ admin , rdc _ config , level 3_

    Mysql大小写敏感的问题

    默认情况下,MySQL在查询时对表名和列名是不区分大小写的,这主要取决于你的操作系统和MySQL配置。例如,`CREATE TABLE NAME (name VARCHAR(10))`,在这之后,无论你使用`SELECT * FROM TABLE NAME WHERE name='...

    linux mysql中的坑

    2. **Linux环境**:而在Linux环境下,默认情况下MySQL严格区分大小写,这意味着在创建表或引用表时必须确保名称完全匹配(包括大小写)。 这种行为差异往往会成为从Windows环境迁移到Linux环境时的一个常见陷阱。 ...

    MySQL数据库应用与开发实训报告.doc

    在数据库管理中,可以改变数据库的字符集和校对规则,例如将数据库字符集更改为gb2312,使其支持简体中文且不区分大小写。此外,还可以通过相关SQL语句查询数据库的结构信息,了解其内部构成。 接下来是【表及数据...

    mysql 数据库小写转换为大写的解决方案

    具体来说,在Linux环境下,这些对象名称是区分大小写的;而在Windows环境中,默认情况下这些名称则不区分大小写。这种差异可能导致跨平台迁移时出现一些意外问题。例如,如果在Linux环境下创建了名为`test_table`的...

    MySQL中使用replace、regexp进行正则表达式替换的用法分析

    如果你需要区分大小写,可以使用BINARY关键字来强制REGEXP进行大小写敏感匹配。 另外,可以使用字符类在方括号中列出希望匹配的任意一个字符集。例如,要找出名字中包含字母'a'或'b'或'c'的所有记录,可以使用: ...

    vb.net操作MYSQL

    这些参数的顺序不是强制性的,且不区分大小写。这些参数具有特定的名称定义,例如: - `Server`: MySQL服务器的地址。 - `Database`: 要连接的数据库名称。 - `Uid`: 用户名。 - `Pwd`: 密码。 - `Port`: 连接端口...

    安装MySQL数据库.docx

    设置`lower_case_table_names = 1`使得数据库不区分大小写,`sql_mode`定义严格模式,以及其他相关参数。 6. **初始化数据库**: 在安装libaio库之后,使用`/usr/local/mysql/bin/mysqld --initialize --user=...

    MySql无法退出Sql命令行编辑.doc

    - **大小写敏感性**:MySQL关键字和函数名称通常不区分大小写,例如`SELECT`、`select`和`SeLeCt`被视为相同。 - **计算功能**:除了执行数据库操作外,MySQL还可以用作简单的计算器,支持基本的数学运算,例如加减...

    MySQL安装教程,及相关问题

    若项目无法识别表名大小写,可能是因为MySQL默认在Linux环境下区分大小写。可以通过以下方式设置为不区分大小写: - 使用root用户登录MySQL。 - 修改`/etc/my.cnf`配置文件中的`lower_case_table_names`选项为`1...

    MySQL.Pocket.Reference.2nd.Edition

    1. **大小写敏感性(Case Sensitivity)**:MySQL默认对标识符(如表名、列名)不区分大小写,但在某些操作系统下可以通过设置使其区分大小写。 2. **文字值(Literals)**:SQL语句中的常量值,如数字、字符串和日期...

Global site tag (gtag.js) - Google Analytics