MySQL特殊字符无关选择

MySQL特殊字符无关选择,mysql,special-characters,select-query,Mysql,Special Characters,Select Query,我有一个mysql表,存储有关歌曲及其艺术家的信息。在客户端,我有一个web页面,它使用jQuery和Ajax以自动完成的形式搜索这些数据。例如,键入“David B”将返回David Bowie。这很好,但是当有人想要搜索“Mötley Crüe”时,他们必须在返回搜索结果之前键入特殊字符。我希望用户能够键入“杂色C”,并自动填写到“Mötley Crüe” 目前,我构建了select查询,并使用类似“%pattern%”的方法搜索艺术家。在MySQL中有什么方法可以做到这一点吗 谢谢大家!

我有一个mysql表,存储有关歌曲及其艺术家的信息。在客户端,我有一个web页面,它使用jQuery和Ajax以自动完成的形式搜索这些数据。例如,键入“David B”将返回David Bowie。这很好,但是当有人想要搜索“Mötley Crüe”时,他们必须在返回搜索结果之前键入特殊字符。我希望用户能够键入“杂色C”,并自动填写到“Mötley Crüe”

目前,我构建了select查询,并使用类似“%pattern%”的方法搜索艺术家。在MySQL中有什么方法可以做到这一点吗


谢谢大家!

如果使用支持unicode且与区域性无关的排序规则(如
utf8\u general\u ci
)存储艺术家的姓名,则此操作是开箱即用的。您可以使用
alter table
更改列的排序规则:

alter table YourTable modify ArtistName varchar(255) collate utf8_general_ci;
如果您不能/不想更改列排序规则,可以在查询中使用以下特定排序规则:

select * from YourTable where ArtistName like 'motley%' collate utf8_general_ci;

如果使用支持unicode且与区域性无关的排序规则(如
utf8\u general\u ci
)存储艺术家的姓名,则这种方法是现成的。您可以使用
alter table
更改列的排序规则:

alter table YourTable modify ArtistName varchar(255) collate utf8_general_ci;
如果您不能/不想更改列排序规则,可以在查询中使用以下特定排序规则:

select * from YourTable where ArtistName like 'motley%' collate utf8_general_ci;