Pull to refresh
24.6
Karma
0
Rating
[BlockDog] @blockdog

И швец, и жнец, и на дуде игрец

Задача на сортировку

| 4 | 2010-03-01 12:00:00 | Test 3 |
| 2 | 2010-03-01 12:00:00 | Test 2 |


SELECT `id` FROM `test` WHERE `date` <= '2010-03-01 12:00:00' AND `id` != 4 ORDER BY `date` DESC, `id` DESC LIMIT 1
Вернет: 2

SELECT `id` FROM `test` WHERE `date` <= '2010-03-01 12:00:00' AND `id` != 2 ORDER BY `date` DESC, `id` DESC LIMIT 1
Вернет: 4

Вот и закольцевалось…

Если вы хотите `date` <= $date AND `id` < $id сделать (как в первом комментарии этой ветки), тогда вы не сможете получить предыдущую запись по дате, у которой ID больше текущего.

В моей тестовой таблице этого случая для предыдущей записи нет, но если вы попробуете таким запросом найти следующую запись: `date` >= $date AND `id` > $id, тогда 3 никогда не выпадет (по дате она после 4, но id у нее не > 4).

WHERE `date` < $date or (`date` = $date and `id` < $id) остается правильным решением, учитывающим это.

Задача на сортировку

CREATE TABLE `test` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`date` datetime NOT NULL,
`content` varchar(255) NOT NULL,
PRIMARY KEY (`id`),
KEY `date` (`date`)
) ENGINE=MyISAM;

Задача на сортировку

Откуда 2010-02-28?
Все даты: 2010-03-01, отличаются только часом.

Задача на сортировку

Да, тут я сам спалился, попытавшись расшифровать своё же сложное условие задачи (:

Задача на сортировку

Наверное, не так поняли.
При совпадении дат `date` DESC откидывается, и сортируется по `id` DESC.
В данном случае будет возвращаться больший из последовательности ID, отличный от текущего. То есть, для 2 мы получим 4, а для 4 получим 2 — зациклились.

Задача на сортировку

Да! Молодец!
У меня намного сложнее решение, но в принципе, подход примерно такой же.
Спасибо за решение, оно действительно изящное и работает!

Задача на сортировку

Я очень долго бился над формулировкой задачи. Видимо, недостаточно.

Попробую другими словами: есть таблица с записями, нужно для каждой записи таблицы получить предыдущую запись по следующим условиям:
1) дата предыдущей записи меньше или равна текущей записи
2) если дата равна, тогда предыдущая запись определяется последовательностью ID, например, если для записей 123, 456, 789 даты равны, то для 456 предыдущей будет 123, и т.д.

В приведенной в задаче тестовой таблице правильная последовательность предыдущих ID от 5 будет следующая: 5, 3, 4, 2, 1

Задача на сортировку

Нет. Такой запрос для 3 записи вернет 2, а должен вернуть 4.
Затем для 4 он вернет 2, а для 2 вернет 4 — зациклился…

Задача на сортировку

Опишите отдельный запрос с «полной сортировкой».
Если я правильно понимаю, то вы хотите выбрать подзапросом все записи, подходящие под условия `date` <= $date AND `id` != $id, а основным запросом отсеять те, которые не подходят по условию совпадающих дат? Наверное, так тоже можно сделать, но тут всё-таки получится два запроса (точнее запрос с подзапросом), а это не самое лучшее решение — можно одним запросом однозначно определить.

Задача на сортировку

В таком запросе вы не получите предыдущую запись, если даты не совпадают, а ID предыдущей больше, чем текущей. Такое возможно по условиям задачи.

Задача на сортировку

Нужно найти предыдущую запись по дате, но если даты совпадают, тогда предыдущую запись нужно определять по ID.

Посмотрите пример, там две записи (2 и 4) с одинаковыми датами. Нужно сделать так, чтобы для 4 возвращалась 2, а для 2 возвращалась 1. Но при этом нужно, чтобы работала нормальная сортировка по дате, если записей с совпадающими датами нет.

Реально закручено всё, но на примере проще всего понять.

Постмортем iPhone игры Finger Physics

Вот ещё, что я хотел спросить, чего не указано в тексте выше.
Наверняка, разработчики смотрели с радостью на iPad из-за его размеров. Как ты сказал выше, фигуры отрисовываются программно, то есть, для миграции на iPad вам нужно только перерисовать фоны?

Лично я, играя в Finger Physics на iPhone, иногда сильно бесился из-за того, что не мог попасть пальцем в нужное место. А на iPad, вроде как, это проблема должна быть полностью решена.

Постмортем iPhone игры Finger Physics

Отличный постмортем!
Прямо-таки захотелось написать что-нибудь под iPhone / iPod Touch.

Легким движением руки, плеер превращается…

На картинке вижу USB вход у Lexicon и не вижу такого у Oppo.
Вполне тянет на $3k… (:

MyShows.ru &mdash; сериалы, которые я смотрю

Мечтаю, конечно, но если бы вы прикрутили отслеживание новых серий на популярных российских трекерах, было бы неимоверно круто!

Реабилитации МТС пост

Интересно, а если у меня включена на яйцах переадресация, она считается услугой связи?

Дример — неконтролируемый поток сновидений

«создает впечатление» — правильное выражение, потому что я такого смысла не вкладывал в эту фразу. А уж заставить всех понимать то или иное выражение одинаково — вне моих сил, простите.

Дример — неконтролируемый поток сновидений

Спасибо, идеи неплохие!

Планирую добавить теги (пока только непонятно, в каком виде), они помогут структурировать и тематику, и позитив/негатив.
По поводу возможности закрепить за собой свои сны, я уже писал выше. Таким образом можно будет прослеживать динамику и периоды.
Ну а для глобальной динамики подождем момента, когда хотя бы 1% людей планеты напишет свои сны (: А там, видно будет…

Дример — неконтролируемый поток сновидений

На вкус и цвет колбаса бывает разная…
Сравните формы для добавления сна там и тут.
Я лично за простоту!

Information

Rating
6,012-th
Registered
Activity