Новости
Документация
Download
Webboard
Поиск
FAQ/ЧаВо
Обратная связь




MySQL.RU - Webboard



Вернуться
Сортировка одинаковых дат дает разный результ (ВебМан) 13/06/2013 - 13:00:07
      Re: Сортировка одинаковых дат дает разный результ (Akina) 13/06/2013 - 13:35:33
      Re: Сортировка одинаковых дат дает разный результ (ВебМан) 13/06/2013 - 14:08:13
      Re: Сортировка одинаковых дат дает разный результ (Akina) 13/06/2013 - 14:22:18

> Original message text:
> From: ВебМан - 13/06/2013 - 13:00:07
> Subject:Сортировка одинаковых дат дает разный результ
> -----------------
> Добрый день!
>
> Столкнулся с проблемой - не могу добиться нужного вывода, когда timestamp совпадают:
>
> create table a (id int, date timestamp, wid int, index(id), index(date), index(wid));
> create table b (wid int, name text, index(wid));
> insert into a values (9,"2013-06-13 10:21:43", 12), (9,"2013-06-13 10:21:43",6), (9,"2013-06-13 11:32:40",6), (9,"2013-06-13 11:32:40",3);
> insert into b values (3,"Сидоров Сидор Сидорович"), (6,"Иванов Иван Иванович"), (12,"Андреев Андрей Андреевич");
>
> Задача: вывести инфо из таблицы "а" + "б" точно в заданной последовательности, согласно таблице "а" (причем сделать это одним запросом)
>
> mysql> select * from a;
> +------+---------------------+------+
> | id | date | wid |
> +------+---------------------+------+
> | 9 | 2013-06-13 10:21:43 | 12 |
> | 9 | 2013-06-13 10:21:43 | 6 |
> | 9 | 2013-06-13 11:32:40 | 6 |
> | 9 | 2013-06-13 11:32:40 | 3 |
> +------+---------------------+------+
>
>
> mysql> select t1.*,t2.name from a t1,b t2 where t1.id=9 and t2.wid=t1.wid order by t1.date;
> +------+---------------------+------+--------------------------+
> | id | date | wid | name |
> +------+---------------------+------+--------------------------+
> | 9 | 2013-06-13 10:21:43 | 6 | Иванов Иван Иванович |
> | 9 | 2013-06-13 10:21:43 | 12 | Андреев Андрей Андреевич |
> | 9 | 2013-06-13 11:32:40 | 3 | Сидоров Сидор Сидорович |
> | 9 | 2013-06-13 11:32:40 | 6 | Иванов Иван Иванович |
> +------+---------------------+------+--------------------------+
> ^^^^^ mysql нарушает желаемый вывод и сортирует видимо по wid еще...
>
>
> А НУЖНО, ЧТОБЫ БЫЛО точно как в порядке добавления в таблице "a":
> +------+---------------------+------+--------------------------+
> | id | date | wid | name |
> +------+---------------------+------+--------------------------+
> | 9 | 2013-06-13 10:21:43 | 12 | Андреев Андрей Андреевич |
> | 9 | 2013-06-13 10:21:43 | 6 | Иванов Иван Иванович |
> | 9 | 2013-06-13 11:32:40 | 6 | Иванов Иван Иванович |
> | 9 | 2013-06-13 11:32:40 | 3 | Сидоров Сидор Сидорович |
> +------+---------------------+------+--------------------------+
>
> P.S. необходимо одним запросом отправить на сервер!!!
>


From: Akina - 13/06/2013 - 13:35:33
Subject:Сортировка одинаковых дат дает разный результ
-----------------
MySQL делает всё в строгом соответствии со стандартом.

Если при сортировки для некоторых записей получается одинаковое значение критерия сортировки, записи группы имеют право быть отданы в ЛЮБОМ порядке. Более того - при двух последовательных выполнениях запроса на одних и тех же данных этот порядок имеет право быть различным.

Для того, чтобы гарантировать нужный порядок, следует использовать дополнительные критерии сортировки (например, дополнительная сортировка по автоинкрементному полю).

Если исходные данные не имеют такого критерия (в частности, вышеприведённые данные, скорее всего, именно такие) - задача не решается.


[Это сообщение - спам!]

Последние сообщения из форума

Уважаемые посетители форума MySQL.RU!
Убедительная просьба, прежде чем задавать свой вопрос в этом форуме, обратите внимание на разделы:
- ответы на наиболее часто задаваемые вопросы - FAQ
- раздел документация
- раздел поиск по сообщениям форума и документации
Также, старайтесь наиболее подробно указывать свою ситуацию (версию операционной системы, версию MySQL, версию программного обеспечения, по которому возникает вопрос, текст возникающих ошибок, и др.)
Помните, чем конкретнее Вы опишете ситуацию, тем больше шансов получить реальную помощь.
 Имя:
 E-mail:
 Тема:
 Текст:
Код подтверждения отправки: Code
42683



РЕКЛАМА НА САЙТЕ
  Создание сайтов | |