|
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,
версию программного обеспечения, по которому возникает вопрос, текст возникающих ошибок, и др.)
Помните, чем конкретнее Вы опишете ситуацию, тем больше шансов получить реальную помощь.
38042
|
|