2011-08-19 153 views
2

我有以下查询:排序ASC返回奇怪的结果

SELECT 
x.id,x.title 
FROM `x` 
WHERE `x`.status = 'validated' 
ORDER BY `x`.title ASC 

结果:

3042 Cinéastes en herbe Télé-Québec 
1681 Danse contemporaine 
2725 Dessins, peinture et illustrations. 
2448 Les petits mots de Paolo 
641  Ma tente à lire et les Mosaïques dans la rue 
3215 Performance & Visites commentées 
2186 Se partager l’espace : Yann Pocreau 
2364 Souper communautaire 
1223 100 ans 
199  100% couleurs 
2794 125 ans de tourisme à Laval 
2306 À court de souffle! 
1517 Abracadabra Sonia 
2477 Atelier ouvert 
335  Au bout du fil 
2362 Au coeur de notre mémoire 
2489 Bientôt 100 ans! 
2275 Café historique 
1838 Rencontre avec 

我这么想吗?为什么标题没有正确排列?

对于信息:

整理: utf8_general_ci

字符集: UTF-8

解决方案:一个隐藏的空间是在结果 - >中使用的微调功能

+1

嗯......也许你在这一列上使用了一些奇特的排序规则? :) – Karolis

+0

排序规则:utf8_general_ci,字符集:utf-8 – Tarek

回答

9

我会检查前几行,看看标题前面是否有隐藏的字符。

SELECT 
    ASCII(SUBSTRING(x.title, 1, 1)) 
FROM 
    x 
WHERE 
    x.id IN (3042, 1681) 
+0

+1,但我会检查所有行,特别是(1517,Abracadabra Sonia)。 – MatBailie

+0

是的,这是一个想法。这些角色是唯一不可见的角色吗? – Karolis

+0

我有一个空间...修正它通过添加修剪功能 – Tarek

1

也许你没有使用你想要的排序规则。根据数据库的排序规则,字符串的排列顺序不同。