mysql查询怎么区分大小写

1. 区分大小写

在MySQL数据库中,区分大小写是有很多细节需要注意的。

首先,我们需要了解MySQL的标识符,标识符即是MySQL中的名字。在MySQL中,标识符不区分大小写,例如以下三种写法等价:

SELECT * FROM user;

select * from user;

SelecT * fRoM usEr;

但是在添加、修改、删除表、列等操作时,标识符是区分大小写的。例如以下两种写法是不等价的:

ALTER TABLE user ADD COLUMN age INT;

alter table user add column AGE int;

从上述例子中可以看出,在添加列的时候,列名大小写不同的写法是不同的,这时如果使用了不同的大小写方式,MySQL会报错。

此外,在创建表或者数据库时,如果采用大小写不同的命名方式,最好加上反引号(`)来确保正确性,例如:

CREATE TABLE `user` (

`id` INT(11) NOT NULL,

`name` VARCHAR(50) NOT NULL

) ENGINE=INNODB DEFAULT CHARSET=utf8;

该语句中使用了大小写混写的表名user,如果没有加反引号,MySQL会把它解析成小写的表名user,从而导致错误。

2. 区分大小写查询

从上面的内容可以看出,MySQL默认不区分大小写,如果想要区分大小写查询,在查询语句中可以使用BINARY运算符。

BINARY运算符的作用是告诉MySQL区分大小写。例如,在查询user表时,要求必须大小写匹配的话,可以使用以下写法:

SELECT * FROM user WHERE BINARY name = 'Tom';

其中,BINARY运算符应该放在等号的左侧。

此外,如果想查询某个字段是否包含指定字符串,可以使用LIKE运算符并结合BINARY运算符。以下是一个例子:

SELECT * FROM user WHERE BINARY name LIKE '%To%';

该语句可以查询到name字段中包含To字符串的所有记录,但是只查询大小写完全匹配的记录。

3. 小结

MySQL默认不区分大小写。但是在添加、修改、删除表、列等操作时,大小写是区分的。为了确保正确性,最好加上反引号来命名。在查询时,可以使用BINARY运算符来区分大小写。如果想要模糊查询某个字段是否包含指定字符串,可以使用LIKE运算符并结合BINARY运算符。

免责声明:本文来自互联网,本站所有信息(包括但不限于文字、视频、音频、数据及图表),不保证该信息的准确性、真实性、完整性、有效性、及时性、原创性等,版权归属于原作者,如无意侵犯媒体或个人知识产权,请来电或致函告之,本站将在第一时间处理。猿码集站发布此文目的在于促进信息交流,此文观点与本站立场无关,不承担任何责任。

数据库标签