一尘不染

如何在MySQL上进行SQL区分大小写的字符串比较?

mysql

我有一个函数,返回大小写混合的五个字符。如果我对此字符串进行查询,则无论大小写都将返回该值。

如何使MySQL字符串查询区分大小写?


阅读 347

收藏
2020-05-17

共1个答案

一尘不染

http://dev.mysql.com/doc/refman/5.0/en/case-
sensitiveivity.html

默认字符集和排序规则为latin1和latin1_swedish_ci,因此默认情况下非二进制字符串比较不区分大小写。这意味着,如果使用col_name
LIKE’a%’搜索,则将获得以A或a开头的所有列值。要使此搜索区分大小写,请确保其中一个操作数具有区分大小写或二进制排序规则。例如,如果要比较均具有latin1字符集的列和字符串,则可以使用COLLATE运算符使两个操作数具有latin1_general_cs或latin1_bin归类:

col_name COLLATE latin1_general_cs LIKE 'a%'
col_name LIKE 'a%' COLLATE latin1_general_cs
col_name COLLATE latin1_bin LIKE 'a%'
col_name LIKE 'a%' COLLATE latin1_bin

如果希望始终以区分大小写的方式对待列,请使用区分大小写或二进制排序规则进行声明。

2020-05-17