对 MySQL 查询进行排序,忽略大小写

Eri*_*ES7 2 mysql sorting objective-c case-insensitive

呃,你马上就会想,“使用 ORDER BY,然后使用列”,但我有以下值:

  1. A
  2. Z
  3. A
  4. z

当我使用此查询对它们进行排序时:

SELECT * FROM Diaries ORDER BY title ASC;
Run Code Online (Sandbox Code Playgroud)

然后我得到这个:

  1. A
  2. Z
  3. A
  4. z

当我想要得到这样的东西时,第一期

  1. A
  2. A
  3. Z
  4. z

我在第二个问题的其他地方遇到了相同的排序问题,但我能够用以下方法解决它:通过暂时将所有字符都设置为小写

for (NSString *key in [dicGroupedStories allKeys]) {
    [dicGroupedStories setValue: [[dicGroupedStories objectForKey: key] sortedArrayUsingComparator:^NSComparisonResult(id a, id b) {
        NSString *stringA = [[a objectStory_title] lowercaseString];
        NSString *stringB = [[b objectStory_title] lowercaseString];

        return [stringA compare: stringB];
    }] forKey: key];

}
Run Code Online (Sandbox Code Playgroud)

我不使用此比较器对第一个问题进行排序的唯一原因是我不想执行查询然后对它们进行排序然后使用数组。

问题:我想知道是否有一种方法可以按照我想要的方式对它们进行排序,就像我在第二期中所做的那样,在 SQL 查询中

对象id aid b是包含其他对象(如标题、创建日期、描述等)的数组。objectDiary_title返回 aNSString

Gor*_*off 5

在 SQL 中,您可以在 中使用lower()或函数:upper()order by

ORDER BY lower(Diaries), diaries
Run Code Online (Sandbox Code Playgroud)