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




MySQL.RU - Webboard



Вернуться
5.1.41-3ubuntu12.10 странно себя ведет (Станислав) 05/03/2011 - 15:27:26
      Re: 5.1.41-3ubuntu12.10 странно себя ведет (Станислав) 05/03/2011 - 15:34:47
      Re: 5.1.41-3ubuntu12.10 странно себя ведет (Akina) 05/03/2011 - 15:42:10
      Re: 5.1.41-3ubuntu12.10 странно себя ведет (Станислав) 05/03/2011 - 16:02:56
      Re: 5.1.41-3ubuntu12.10 странно себя ведет (Akina) 05/03/2011 - 16:08:09



From: Станислав - 05/03/2011 - 15:27:26
Subject:5.1.41-3ubuntu12.10 странно себя ведет
-----------------
Всем привет.

Столкнулся с проблемой при разработке одного сайта.
Специально сделал тестовый набор данных и запросов чтобы проверить. И вот результат:

---
drop table if exists test_data;

create table test_data(
id int not null,
date date not null default '0000-00-00',
primary key(id),
index d(date));

insert into test_data values(1, '2010-03-05');
insert into test_data values(2, '2010-03-05');
insert into test_data values(3, '2010-03-02');
---

Далее делаем тестовые запросы:

mysql> select * from test_data order by date;
+----+------------+
| id | date |
+----+------------+
| 3 | 2010-03-02 |
| 1 | 2010-03-05 |
| 2 | 2010-03-05 |
+----+------------+
3 rows in set (0.00 sec)

mysql> select * from test_data order by date limit 0,1;
+----+------------+
| id | date |
+----+------------+
| 3 | 2010-03-02 |
+----+------------+
1 row in set (0.00 sec)

mysql> select * from test_data order by date limit 1,1;
+----+------------+
| id | date |
+----+------------+
| 1 | 2010-03-05 |
+----+------------+
1 row in set (0.00 sec)

Пока все хорошо и предсказуемо.
А теперь повернем сортировку в обратную сторону.

mysql> select * from test_data order by date desc;
+----+------------+
| id | date |
+----+------------+
| 1 | 2010-03-05 |
| 2 | 2010-03-05 |
| 3 | 2010-03-02 |
+----+------------+
3 rows in set (0.00 sec)

mysql> select * from test_data order by date desc limit 0,1;
+----+------------+
| id | date |
+----+------------+
| 2 | 2010-03-05 |
+----+------------+
1 row in set (0.00 sec)

И вот тут я, честно говоря, ожидал увидеть запись с id = 1.


mysql> select * from test_data order by date desc limit 1,1;
+----+------------+
| id | date |
+----+------------+
| 1 | 2010-03-05 |
+----+------------+
1 row in set (0.00 sec)

А тут хотелось бы запись с id = 2.

Вот и хотел уточнить у знатоков правильно ли я понимаю, что это не совсем корректная работа MySQL сервера? Или может я немного не разрбрался с тонкостями работы limit.

MySQL Server version: 5.1.41-3ubuntu12.10 (Ubuntu)
Linux 2.6.32-28-generic #55-Ubuntu SMP Mon Jan 10 21:21:01 UTC 2011 i686 GNU/Linux





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

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

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



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