【发布时间】:2013-05-09 19:29:48
【问题描述】:
我有一个字符集latin1(由show variables like "character_set_database"; 检查)和latin1_swedish_ci(由SHOW TABLE STATUS; 检查)的默认排序规则的表。
我想使用在我的系统上编译的排序规则 latin1_general_cs 运行查询(由 Show collation LIKE "%_cs"; 检查):
select * from myTab WHERE col RLIKE '[[:upper:]]' COLLATE 'latin1_general_cs' LIMIT 10;
给出错误:
ERROR 1253 (42000): COLLATION 'latin1_general_cs' is not valid for CHARACTER SET 'utf8'
即使默认排序规则也不起作用:
select * from myTab WHERE col RLIKE '[[:upper:]]' COLLATE 'latin1_swedish_ci' LIMIT 10;
错误:
ERROR 1253 (42000): COLLATION 'latin1_swedish_ci' is not valid for CHARACTER SET 'utf8'
怎么了?是因为我的终端以 UTF-8 格式发送数据吗? (是“UTF-8 中的连接”吗?)我怎么能使用区分大小写的排序规则?我需要它,否则似乎无法检查大写字母。
【问题讨论】:
标签: mysql character-encoding collation uppercase