在utf8_general_ci和之间utf8_unicode_ci,性能方面有什么不同吗?
我希望能够进行规范化重音字符的查询,例如:
é, è, and ê
Run Code Online (Sandbox Code Playgroud)
在使用'='和'like'的查询中,所有都被视为'e'.我有一行将用户名字段设置为' rené ',我希望能够将它与' rene '和' rené ' 匹配.
我试图用MySQL 5.0.8中的'collate'子句来做这件事.我收到以下错误:
mysql> select * from User where username = 'rené' collate utf8_general_ci;
ERROR 1253 (42000): COLLATION 'utf8_general_ci' is not valid for CHARACTER SET 'latin1'
Run Code Online (Sandbox Code Playgroud)
FWIW,我的表创建时:
CREATE TABLE `User` (
`id` bigint(19) NOT NULL auto_increment,
`username` varchar(32) NOT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `uniqueUsername` (`username`)
) ENGINE=InnoDB AUTO_INCREMENT=56790 DEFAULT CHARSET=utf8
Run Code Online (Sandbox Code Playgroud) 我试图MySQL通过REGEX有或没有特殊的utf-8字符从数据库获取数据.
让我解释一下例子:
如果用户输入的字像sirena它应该返回行,其中包括类的字眼sirena,siréna,šíre?á..等..也应该倒退,当他进入工作siréná应该返回相同的结果..
我试图通过搜索REGEX,我的查询看起来像这样:
SELECT * FROM `content` WHERE `text` REGEXP '[sšŠ][iíÍ][r????][eéÉ??][n??][AaáÁäÄ0]'
Run Code Online (Sandbox Code Playgroud)
它只适用于数据库中的单词sirena而不是单词时才有效siré?a.
是因为UTF-8和MySQL有关吗?(整理mysql列是utf8_general_ci)
谢谢!