我有一个艺术家,专辑和曲目列表,我想用它们各自名称的第一个字母排序。当我想忽略“The”,“A”,“An”和其他各种非字母数字字符(与您对话“奇怪的Al”扬科维奇和[对话])时,问题就会到来。 Django有一个很好的开始'^(An?| The)+',但我想忽略那些和我选择的其他几个人。匹配第一个字母数字字符跳过(The | An?)
我这样做是在Django中,使用一个MySQL数据库与utf8_bin整理。
编辑
那么我没有提及这一点,但数据库我访问故障是非常俱备只。它是由Amarok创建和维护的,我不能在没有一堆问题的情况下改变它。这是说艺术家表有The Chemical Brothers
列为The Chemical Brothers
所以我认为我卡在这里。这可能会很慢,但这不是我个人关心的问题,因为这是个人项目。
提供更多信息。你想在哪里进行分类?在SQL或Python?你想丢弃这些条目,还是只有前缀? – 2010-04-10 20:52:12
我个人会创建一个名为“prefix”的列,然后遍历每一行并分离出前缀(如果有的话)。然后在“名称”列上排序 - 不管它是什么。你总是可以将名字拼凑在一起。像pi一样容易。 – 2010-04-10 20:53:30
@Hamish我无法改变数据库。我可能会拉出值使用Django的__regex相当于'WHERE title REGEXP'^(一个?| the)+';'或者沿着这些线。 – TheLizardKing 2010-04-10 22:00:44