- 浏览: 175544 次
- 来自: 深圳
文章分类
最新评论
-
GGGGeek:
MySQL5.7.24varchar(65532)报错:107 ...
int(11)最大长度是多少,MySQL中varchar最大长度是多少?
来源:http://blog.csdn.net/csz_363874279qqcom/article/details/7386024
问题描述:
找出用户名id为’AAMkADExM2M5NjQ2LWUzYzctNDFkMC1h‘的用户的数据: select * from usertable where id = 'AAMkADExM2M5NjQ2LWUzYzctNDFkMC1h'; 结果出现两条记录。这就奇怪了,id已经设置为主键,怎么会重复呢?难道是mysql的漏洞。后来发现原来查询出来的两个id的值是不同的,诈一看没什么 区别,仔细看你会发现这两个id只是有一个字母的大小写不同, 这两个id分别为:
'AAMkADExM2M5NjQ2LWUzYzctNd FkMC1h',
'AAMkADExM2M5NjQ2LWUzYzctND FkMC1h'.
原来mysql查询时,存在不区分大小写的情况。可以通过binary关键字加以解决。
解决方法有两种:
第一种:让mysql查询时区分大小写
select * from usertable where binary id = 'AAMkADExM2M5NjQ2LWUzYzctNDFkMC1h';
第二种:在建表时加以标识
create table table_name {
id varchar(32) binary;
}
在mysql中,存在大小写问题的地方还有:
(1) 关键字: 不区分大小写 select * fRom table_name 和 select * from table_name 效果是一样的
(2) 标示符(如数据库名称和表名称):不区分大小写。如存在表users,那么select * from users和select
* from uSers 效果一样。网上说这跟操作系统有关,在所有Unit操作系统(除了使用HFS+的Mac OS
之外)上都是区分大小写的,而在windows上是不区分大小写的。(网上的这一说法没有验证过,我在windows
server2003上是不区分大小写的)
(3) 表的别名:不区分大小写 select m.* from users m where M.username = 'aa'
;
(4) 列的别名:不区分大小写 select uName from (select username as uname from users where id = 768) t
发表评论
-
PHP+MYSQL大小写问题
2014-11-21 11:33 1622[PHP]一、大小写敏感 1. 变量名区分大小写 所有变 ... -
sqlstate[HY000][2002]php_network_getaddresses 错误
2014-04-09 14:45 3837sqlstate[HY000][2002]php_netw ... -
MySQL中的datetime与timestamp比较
2013-09-17 16:29 2041相同 显示 TIMESTAMP列的显示格式与DATETI ... -
mysql 二进制
2013-09-17 16:26 4601MYSQL的binary解决mysql数据大小写敏感问题 ... -
提高php代码质量 36计
2013-08-26 17:31 8261.不要使用相对路径常常会看到: 复制代码 requi ... -
MySQL 的 10 个技巧
2013-08-23 11:46 740避免编辑转储文件 Mysq ... -
MySql如何插入和查询二进制数据
2013-08-15 22:31 4863Mysql:bit类型的查询与插入mysql有种字段类型是b ... -
MySQL字符集查看方法
2013-08-09 16:41 789MySQL字符集多种多样,下面为列举了其中三种最常见的字符 ... -
SELECT INTO FROM与INSERT INTO SELECT区别
2013-08-06 16:49 1325select * into destTbl from s ... -
php mysql临时表的应用
2013-07-30 10:29 2327当工作在非常大的表上时,你可能偶尔需要运行很多查询获得一个大 ... -
php 获取今日、昨日、上周、本月的起始时间戳和结束时间戳的方法
2013-07-25 15:06 1010php 获取今日、昨日、 ... -
mysql查询今天,昨天,近7天,近30天,本月,上一月数据的方法
2013-07-25 15:05 1428mysql查询今天,昨天,近7天,近30天,本月,上一月数据 ... -
MySQL 获得当前日期时间 \ 时间戳 函数 \ 时间转换函数
2013-07-19 17:01 1159一、MySQL 获得当 ... -
int(11)最大长度是多少,MySQL中varchar最大长度是多少?
2013-07-18 10:55 24723int(11)最大长度是多少? 在SQL语句 ... -
如何用MYSQL删除表中重复数据
2013-09-10 10:45 1701通常情况下,一个我们在 ... -
mysql取随机5条记录
2013-05-20 15:37 0SELECT * FROM `table` AS t1 JOI ... -
MySQL之alter语句用法总结
2013-08-21 16:56 623MySQL之alter语句用法总结 1:删除列 ALT ... -
order by + limit非常慢的问题解析
2013-04-27 09:07 0发现其sql如下: mysql> ... -
on duplicate key update, insert ignore into, replace into等的一些用法总结
2013-03-29 10:23 0在MySQL中进行条件插入数据时,可能会用到以下语句,现小 ... -
MySQL中UNION和UNION ALL的使用
2013-03-28 21:05 1295来源:http://hi.baidu.com/du ...
相关推荐
本文将详细介绍两种解决MySQL查询不区分大小写问题的方法。 **方法一:使用BINARY函数** 在查询语句中,你可以使用BINARY函数来强制进行区分大小写的比较。BINARY关键字将字符串转换为二进制形式,从而进行字节...
在MySQL中,查询默认情况下通常是不区分大小写的,但如果你想让你的查询对大小写敏感,有几种方法可以实现。以下是一些关键知识点和步骤来帮助你在MySQL中进行区分大小写的查询。 1. **设置列的Collation** - **...
在本文中,我们探讨了解决MySQL查询不区分大小写问题的几种方法: 1. **更改字符集和排序规则(Collation)**: MySQL的排序规则决定了字符串比较时是否区分大小写。默认的排序规则如`utf8_general_ci`是不区分大...
然而,在8.0版本中,MySQL对此进行了重大改动:该参数现在只能在服务器初始化时进行配置,并且默认值在不同的操作系统上有区别——Windows下默认为1(大小写不敏感),而在Linux下则保持不变,仍为0(大小写敏感)。...
此外,尽管设置为1可以使MySQL在逻辑上不区分大小写,但为了保持一致性,建议在定义表名和编写SQL语句时始终使用小写,避免因大小写问题引起不必要的困扰。 在开发过程中,特别是涉及跨平台的应用,了解并适当地...
同时,在查询字符串时,MySQL 是大小写不敏感的,这也会导致大小写问题的产生。 在实际应用中,这个问题可能会引起一些问题,例如在插入数据时可能会发生 Duplicate entry Error,或者在查询时返回的结果不正确。...
这行配置告诉MySQL服务器,无论在创建数据库或表时使用什么大小写,都将所有表名转换为小写进行存储和比较,从而在查询操作中实现了大小写不敏感。 ### 重启MySQL服务 修改完配置文件后,需要重启MySQL服务以使...
`2` 表示在Windows系统中不区分大小写而在其他系统中区分大小写。 #### 总结 通过对SQL Server和MySQL中区分大小写的设置进行深入了解,我们可以更好地根据实际需求调整数据库的行为。无论是创建表时指定字段属性...
MySQL默认的行为是不区分字符串中的字母大小写,这可能会在某些场景下引起困扰,比如在需要严格区分大小写的数据库操作中。以下是对这一主题的详细解释。 首先,字符集是用于表示和存储文本数据的编码方式,如UTF-8...
尽管列名在大多数情况下不区分大小写,但如果你想在查询时区分字段值的大小写,可以对字段设置BINARY属性。BINARY属性确保比较时考虑字符的ASCII值,而不是忽略大小写。有三种方式可以设置BINARY属性: A. 创建表时...
需要注意的是,如果你的应用程序已经习惯了不区分大小写的模式,切换到区分大小写可能导致一些问题,比如找不到已存在的表或列。因此,在进行这种改变之前,务必对现有的数据库结构进行检查,并确保所有的引用都是大...
MySQL 在 Linux 下默认情况下是严格区分表名和数据库名的大小写,而在 Windows 下则不区分大小写。 在 Linux 下,MySQL 的默认设置是区分表名的大小写,不区分列名的大小写。可以通过添加 lower_case_table_names=...
mysql设置不区分大小写 windows下 到安装mysql的目录,修改my.ini文件 在文件最后一行加上下面一句话 lower_case_table_names=1 说明 0:区分大小写,1:不区分大小写 效果如下 [mysqld] port = 3306 basedir=F...
在本文中,我们将探讨如何在Windows和Linux操作系统上设置MySQL使其不区分大小写。 首先,我们要了解`lower_case_table_names`这个配置选项。这是一个用于控制MySQL服务器如何处理表名和数据库名大小写的参数。当`...
mysql查出数据不区分大小写.md
在MySQL中,对于Column Collate其约定的命名方法如下: *_bin: 表示的是binary case sensitive collation,也就是说是区分大小写的 *_cs: case sensitive collation,区分大小写 *_ci: case insensitive collation,...
`UPPER()`可以将字符串转换为大写,而`ILIKE`则用于不区分大小写的字符串比较。 ##### 示例查询语句 ```sql -- 使用UPPER()函数 SELECT * FROM "TUser" WHERE UPPER("Name") LIKE '%TONY%'; -- 使用ILIKE操作符 ...