MySQL社区

标题: 搜索中的大小写敏感性 [打印本页]

作者: jeff    时间: 2007-10-30 12:03
标题: 搜索中的大小写敏感性
在默认情况下,MySQL搜索不区分大小写(但某些字符集始终区分大小写,如czech)。这意味着,如果你使用col_name LIKE 'a%'进行搜索,你将获得以A或a开始的所有列。如果打算使搜索区分大小写,请确保操作数之一具有区分大小写的或二进制校对。例如,如果你正在比较均适用latin1字符集的列和字符串,可使用COLLATE操作符,使1个操作数具有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
如果希望总是以区分大小写的方式处理列,可使用区分大小写的或二进制校对声明它。

简单的比较操作(>=, >, =, <, <=, 排序和分组)基于每个字符的“排序值”。具有相同排序值的字符(如‘E’, ‘e’,和‘&Atilde;&copy;’)将被当作相同的写字符。

作者: mysqlkumao    时间: 2008-4-10 10:29
1. 在列定义中使用binary关键字,如
alter table TB_Name modify c2 varchar(30) binary;

2. 在DML语句中使用binary关键字,如
select * from TB_Name where binary c2 like 'a%';






欢迎光临 MySQL社区 (http://www.mysqlpub.com/) Powered by Discuz! X3.2