Yura123
Новичок
Неправильная сортировка mysql при group_by
Есть таблица.
chapter_id varchar(100)
date date
time time
Данные следующие:
00000 2005-12-07 11:43:25
00001 2005-12-07 11:41:49
00001 2005-12-07 11:41:32
0000300001 2005-12-07 11:40:14
0000300001 2005-12-07 11:39:10
0000300001 2005-12-07 11:24:46
00007 2005-12-06 18:59:53
00000 2005-12-06 18:59:32
Делаю запрос:
SELECT chapter_id FROM stat_cms ORDER BY date DESC, time DESC LIMIT 0, 10
возвращаются строки с нормальной сортировкой по дате:
00000
00001
00001
0000300001
0000300001
0000300001
00007
00000
Естественно, мне не нужны дублирующие записи, потому пишу:
SELECT chapter_id FROM stat_cms GROUP BY chapter_id ORDER BY date DESC, time DESC LIMIT 0, 10
возвращается:
00001
0000300001
00007
00000
Обратите внимание, что запись со всеми нулями переместилась с первой позиции на последнюю.
Дальше еще интереснее.
Если заменить в таблице эти нули на 00002 или 00003, то все равно эта запись оказывается внизу результата.
Если же заменяем на 00004 и выше -- сортировка нормальная.
Где грабли?
Есть таблица.
chapter_id varchar(100)
date date
time time
Данные следующие:
00000 2005-12-07 11:43:25
00001 2005-12-07 11:41:49
00001 2005-12-07 11:41:32
0000300001 2005-12-07 11:40:14
0000300001 2005-12-07 11:39:10
0000300001 2005-12-07 11:24:46
00007 2005-12-06 18:59:53
00000 2005-12-06 18:59:32
Делаю запрос:
SELECT chapter_id FROM stat_cms ORDER BY date DESC, time DESC LIMIT 0, 10
возвращаются строки с нормальной сортировкой по дате:
00000
00001
00001
0000300001
0000300001
0000300001
00007
00000
Естественно, мне не нужны дублирующие записи, потому пишу:
SELECT chapter_id FROM stat_cms GROUP BY chapter_id ORDER BY date DESC, time DESC LIMIT 0, 10
возвращается:
00001
0000300001
00007
00000
Обратите внимание, что запись со всеми нулями переместилась с первой позиции на последнюю.
Дальше еще интереснее.
Если заменить в таблице эти нули на 00002 или 00003, то все равно эта запись оказывается внизу результата.
Если же заменяем на 00004 и выше -- сортировка нормальная.
Где грабли?