本文目录一览:
mysql表名怎么配置不区分大小写?
用root帐号登录后,在/etc/my.cnf 中的[mysqld]后添加添加lower_case_table_names=1,重启MYSQL服务,这时已设置成功:不区分表名的大小写;
lower_case_table_names参数详解:
lower_case_table_names = 0
其中0:区分大小写,1:不区分大小写
MySQL在Linux下数据库名、表名、列名、别名大小写规则是这样的:
1、数据库名与表名是严格区分大小写的;
2、表的别名是严格区分大小写的;
3、列名与列的别名在所有的情况下均是忽略大小写的;
4、变量名也是严格区分大小写的;
MySQL在Windows下都不区分大小写。
3、如果想在查询时区分字段值的大小写,则:字段值需要设置BINARY属性,设置的方法有多种:
A、创建时设置:
CREATE TABLE T(
A VARCHAR(10) BINARY);B、使用alter修改
mysql数据库不区分大小写吗
可以设置的
在MySQL
中,数据库和表对就于那些目录下的目录和文件。因而,操作系统的敏感性决定数据库和表命名的大小写敏感。这就意味着数据库和表名在
Windows
中是大小写不敏感的,而在大多数类型的
Unix
系统中是大小写敏感的。
奇怪的是列名与列的别名在所有的情况下均是忽略大小写的,而表的别名又是区分大小写的。
要避免这个问题,你最好在定义数据库命名规则的时候就全部采用小写字母加下划线的组合,而不使用任何的大写字母。
或者也可以强制以
-O
lower_case_table_names=1
参数启动
mysqld(如果使用
--defaults-file=...\my.cnf
参数来读取指定的配置文件启动
mysqld
的话,你需要在配置文件的
[mysqld]
区段下增加一行
lower_case_table_names=1)。这样MySQL
将在创建与查找时将所有的表名自动转换为小写字符(这个选项缺省地在
Windows
中为
1
,在
Unix
中为
0。从
MySQL
4.0.2
开始,这个选项同样适用于数据库名)。
当你更改这个选项时,你必须在启动
mysqld
前首先将老的表名转换为小写字母。
mysql区分表名区分大小写吗
您好,提问者:
在mysql数据库中是不区分大小写的。
例如:
1
c
12
2
c
13
我们查询一下:select
*
from
xx
where
x
=
'c';
结果会告诉我们数据库会查出两条,所以查询也不区分大小写。
请问mysql数据类型是否区分大小写?
mysql数据库中的字段不区分大小写,但数据库名与操作系统有关系,windows不区分,*nux区分内容当然是区分的啦,像用户root跟root就不同嘛[]
mysql数据查询分不分大小写
解决方案一:
于是怀疑Mysql的问题。做个实验:直接使用客户端用sql查询数据库。 发现的确是大小不敏感 。
通过查询资料发现需要设置collate(校对) 。 collate规则:
*_bin: 表示的是binary case sensitive collation,也就是说是区分大小写的
*_cs: case sensitive collation,区分大小写
*_ci: case insensitive collation,不区分大小写
解决方法。
1.可以将查询条件用binary()括起来。 比如:
?
1
select * from TableA where binary columnA ='aaa';
2. 可以修改该字段的collation 为 binary
比如:
?
1
ALTER TABLE TABLENAME MODIFY COLUMN COLUMNNAME VARCHAR(50) BINARY CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL;
解决方案二:
mysql查询默认是不区分大小写的 如:
?
1
2
select * from some_table where str=‘abc';
select * from some_table where str='ABC';
得到的结果是一样的,如果我们需要进行区分的话可以按照如下方法来做:
第一种方法:
要让mysql查询区分大小写,可以:
?
1
2
select * from some_table where binary str='abc'
select * from some_table where binary str='ABC'
第二方法:
在建表时时候加以标识
?
1
2
3
create table some_table(
str char(20) binary