怎么查看mysql大小写 mysql 查看表内容是否区分大小写

mysql字符串区分大小写的问题

背景:最近有个需求,需要根据品牌名(varchar)去重数据。去重后发现数据有丢失。

成都创新互联专注于陇南企业网站建设,成都响应式网站建设,成都商城网站开发。陇南网站建设公司,为陇南等地区提供建站服务。全流程按需搭建网站,专业设计,全程项目跟踪,成都创新互联专业和态度为您提供的服务

问题:MySql中字符串大小写默认不区分。

整个例子实验一下。像平常一样建一张表,插入两条数据。

执行如下脚本,查询出来两条数据,确实是不区分大小写的。

2.设置字符集和排序方式;

3.创建表的时候指定binary类型,或者更改字段类型;

4.在MySQL的配置文件my.ini中增加一行:lower_case_table_names = 0;

其中 0:区分大小写,1:不区分大小写。(这种方法我并没有尝试。)

mysql数据库表名区分大小写

使用mysql的时候,创建的表明都是大写的,但是查询语句中表明用消息就会报错,表不存在。

查询后发现mysql默认配置是表明区分大小写的,如果要修改成不区分大小写,需要修改一下配置。

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

1、一种方法是可以设置表或行的collation,使其为binary或case

sensitive。在MySQL中,对于Column

Collate其约定的命名方法如下:

*_bin:

表示的是binary

case

sensitive

collation,也就是说是区分大小写的

*_cs:

case

sensitive

collation,区分大小写

*_ci:

case

insensitive

collation,不区分大小写

###########

#

Start

binary

collation

example

###########

mysql

create

table

case_bin_test

(word

VARCHAR(10))

CHARACTER

SET

latin1

COLLATE

latin1_bin;

Query

OK,

rows

affected

(0.02

sec)

mysql

INSERT

INTO

case_bin_test

VALUES

('Frank'),('Google'),('froogle'),('flickr'),('FlicKr');

Query

OK,

5

rows

affected

(0.00

sec)

Records:

5

Duplicates:

Warnings:

mysql

SELECT

*

FROM

case_bin_test

WHERE

word

LIKE

'f%';

+---------+

|

word

|

+---------+

|

froogle

|

|

flickr

|

+---------+

2

rows

in

set

(0.00

sec)

mysql

SELECT

*

FROM

case_bin_test

WHERE

word

LIKE

'F%';

+---------+

|

word

|

+---------+

|

Frank

|

|

FlicKr

|

+---------+

4

rows

in

set

(0.00

sec)

###########

#

End

###########

2、另外一种方法

###########

#

Start

case

sensitive

collation

example

###########

mysql

create

table

case_cs_test

(word

VARCHAR(10))

CHARACTER

SET

latin1

COLLATE

latin1_general_cs;

Query

OK,

rows

affected

(0.08

sec)

mysql

INSERT

INTO

case_cs_test

VALUES

('Frank'),('Google'),('froogle'),('flickr'),('FlicKr');

Query

OK,

5

rows

affected

(0.00

sec)

Records:

5

Duplicates:

Warnings:

mysql

SELECT

*

FROM

case_cs_test

WHERE

word

LIKE

'F%';

+---------+

|

word

|

+---------+

|

Frank

|

|

FlicKr

|

+---------+

4

rows

in

set

(0.00

sec)

mysql

SELECT

*

FROM

case_cs_test

WHERE

word

LIKE

'f%';

+---------+

|

word

|

+---------+

|

froogle

|

|

flickr

|

+---------+

2

rows

in

set

(0.00

sec)

###########

#

end

###########

3、还有一种方法就是在查询时指定collation

mysql

create

table

case_test

(word

VARCHAR(10))

CHARACTER

SET

latin1;

Query

OK,

rows

affected

(0.01

sec)

mysql

INSERT

INTO

case_test

VALUES

('Frank'),('Google'),('froogle'),('flickr'),('FlicKr');

Query

OK,

7

rows

affected

(0.01

sec)

Records:

7

Duplicates:

Warnings:

mysql

SELECT

*

FROM

case_test

WHERE

word

LIKE

'f%';

+---------+

|

word

|

+---------+

|

Frank

|

|

froogle

|

|

flickr

|

|

FlicKr

|

+---------+

6

rows

in

set

(0.01

sec)

mysql

SELECT

*

FROM

case_test

WHERE

word

LIKE

'F%';

+---------+

|

word

|

+---------+

|

Frank

|

|

froogle

|

|

flickr

|

|

FlicKr

|

+---------+

6

rows

in

set

(0.01

sec)

mysql

SELECT

*

FROM

case_test

WHERE

word

COLLATE

latin1_bin

LIKE

'F%';

+---------+

|

word

|

+---------+

|

Frank

|

|

FlicKr

|

+---------+

4

rows

in

set

(0.05

sec)

mysql

SELECT

*

FROM

case_test

WHERE

word

COLLATE

latin1_bin

LIKE

'f%';

+---------+

|

word

|

+---------+

|

froogle

|

|

flickr

|

+---------+

2

rows

in

set

(0.00

sec)

mysql

SELECT

*

FROM

case_test

WHERE

word

LIKE

'f%'

COLLATE

latin1_bin;

+---------+

|

word

|

+---------+

|

froogle

|

|

flickr

|

+---------+

2

rows

in

set

(0.00

sec)

mysql

SELECT

*

FROM

case_test

WHERE

word

LIKE

'F%'

COLLATE

latin1_bin;

+---------+

|

word

|

+---------+

|

Frank

|

|

FlicKr

|

+---------+

4

rows

in

set

(0.01

sec)

mysql

SELECT

*

FROM

case_test

WHERE

word

LIKE

'F%'

COLLATE

latin1_general_cs;

+---------+

|

word

|

+---------+

|

Frank

|

|

FlicKr

|

+---------+

4

rows

in

set

(0.04

sec)

mysql 怎么检查大小写敏感

1、linux下mysql安装完后是默认:区分表名的大小写,不区分列名的大小写;

2、用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修改:

ALTER TABLE `tablename` MODIFY COLUMN `cloname` VARCHAR(45) BINARY;

C、mysql table editor中直接勾选BINARY项。

mysql模糊查询区分大小写

通常我们会遇到一个字段中存储多个相似单词,比如这样:

我们通过like进行查询时 like ‘%teacher%’,但是大写的Teacher也会被我们找到;

原因:由于sql在查询时默认不会进行大小写区分;

这时我们可以使用BINARY类型转换运算符;

BINARY 运算符将紧随其后的 string 转换为 二进制字符串。

主要用来强制进行按字节进行比较(byte by byte),字节而不是字符的字符。

这使得字符串比较 是区分大小写 的, 不管原始的列定义是否是 BINARY 或者 BLOB。

BINARY 也 对字符串末尾的空格敏感 。

sql可以这样写:select * from 表 where name like binary '%teacher%';

如何判断mysql 是否开启大小写

show Variables like 'lower_case_table%'查看lower_case_table_names的值:

0代表区分,1代表不区分。

mysql show Variables like 'lower_case_table%';

+------------------------+-------+

| Variable_name          | Value |

+------------------------+-------+

| lower_case_table_names | 0     |

+------------------------+-------+

1 row in set (0.01 sec)

mysql


本文标题:怎么查看mysql大小写 mysql 查看表内容是否区分大小写
标题链接:http://azwzsj.com/article/hjeeec.html