我有一个mysql表,存储关于歌曲及其艺术家的信息。在客户端,我有一个web页面,它使用jQuery和Ajax以自动完成的形式搜索这些数据。例如,键入“David B”将返回David Bowie。这样做很好,但是当有人想要搜索'Mótley Crüe'时,他们必须在它返回搜索结果之前键入特殊字符。我希望用户能够键入'Motley C'并自动完成'Mótley Crüe'。
目前,我构建了select查询,并使用类似的'%pattern%'来搜索艺术家。在MySQL中有什么方法可以做到这一点吗?
谢谢您!
最佳答案
如果将艺术家的姓名存储在一个支持unicode且与区域性无关的排序规则中(如utf8_general_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;