小编use*_*466的帖子

MySQL使用ascii版本匹配unicode字符

我正在运行MySQL 5.1.50并且有一个如下所示的表:

organizations | CREATE TABLE `organizations` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` text CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,
  `url` text CHARACTER SET utf8 COLLATE utf8_unicode_ci DEFAULT NULL,
  `phone` varchar(20) CHARACTER SET utf8 COLLATE utf8_unicode_ci DEFAULT NULL,
  `timestamp` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  PRIMARY KEY (`id`),
  KEY `id` (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=25837 DEFAULT CHARSET=utf8 |
Run Code Online (Sandbox Code Playgroud)

我遇到的问题是MySQL将unicode字符与ascii版本匹配.例如,当我搜索包含"é"的单词时,它将匹配具有"e"的相同单词,反之亦然:

mysql> SET NAMES utf8;
Query OK, 0 rows affected (0.00 sec)

mysql> SELECT id, name FROM `organizations` WHERE …
Run Code Online (Sandbox Code Playgroud)

mysql unicode select match

10
推荐指数
2
解决办法
1万
查看次数

标签 统计

match ×1

mysql ×1

select ×1

unicode ×1