![]() |
|
Модераторы: skyboy |
![]()
|
|
| DeamonShan |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 503 Регистрация: 26.11.2005 Репутация: нет Всего: 6 |
есть таблица:
id name time status 1 Ivan 125485936 1 2 Serg 5448755155 3 итд Статусы: 1, 2, 3, 4... time - timestamp как вывести список пользователей за последние две недели со статусом не равной 1?? при этом пользователи со статусом 3 вообще не должны выводится... то есть: "selest * from table where stat<>3" сюда еще добавить условие, если запись двухнедельной давности и его статус 1, то тоже не выбирать... |
|||
|
||||
| Magnifico |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 418 Регистрация: 23.1.2008 Где: Московская област ь Репутация: 4 Всего: 17 |
timestamp в разных субд обрабатывается по разному , а в неккоторых субд (MSSQLServer) вообще не иммет никакого
отношения к датеВремени -------------------- Всё в порядке - спасибо зарядке ! |
|||
|
||||
| DeamonShan |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 503 Регистрация: 26.11.2005 Репутация: нет Всего: 6 |
тип поля time BIGINT, а значение от функции time() в ПХП... я это хотел сказать)))
|
|||
|
||||
| skyboy |
|
|||
|
неОпытный ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: 15 Всего: 260 |
в принципе, вызов DATE() не обязателен. просто, чтоб у тебя выводились и записи в пределах текущих суток, даже если поле time старее на 2 недели + 1 секунда. в заголовке указано MySQL Добавлено через 53 секунды о-па. а почему не хранишь дату/время в специально предназначенном типе поля? лениво, что ли? тогда мой запрос не подходит. |
|||
|
||||
| DeamonShan |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 503 Регистрация: 26.11.2005 Репутация: нет Всего: 6 |
skyboy, помоему твой запрос (даже при правильном типе поля time) исключит все строки со статусом 3 и 1.... и выведет строки со стаусами отличными от 3 и 1 и да посл две недели... а нужно чтоб новые записи за последние две недели со статусом 1 тоже выводились... но в тоже время исключались только старые записи со статусом 1...
а время так храню, потому что при вычислениях оно мне надо))) не удобно каждый раз вызывать mktime().... Добавлено через 3 минуты и 40 секунд то есть условие просрочки относится только к строке со статусом 1... |
|||
|
||||
| skyboy |
|
|||
|
неОпытный ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: 15 Всего: 260 |
ещё раз и внятнее. есть оператор OR. есть оператор AND. есть скобки. группируй, как тебе надо. давай подумаем. сколько в том формате, в котором хранишь, составляет две недели? |
|||
|
||||
| Magnifico |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 418 Регистрация: 23.1.2008 Где: Московская област ь Репутация: 4 Всего: 17 |
а чё подзапросы MYSQL 5 не поддерживает (говорит не могу повторно открыть одну и туже таблицу) ? -------------------- Всё в порядке - спасибо зарядке ! |
|||
|
||||
| DeamonShan |
|
||||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 503 Регистрация: 26.11.2005 Репутация: нет Всего: 6 |
вот мой вариант но не работает... условие data> time() - 2 week относится только к строкам со статусом 1, а к остальным никак не должен!!! Добавлено @ 12:38 Мне нужно исключить строки со статусом 1 записанные две недели (и раньше) назад..... а новые строки со статусом 1 и записанные в течении 2 недель нужно выводить... при этом исключить все строки со статусом 3)))))))))))))))))))))))) Добавлено @ 12:38
Хм... поподробнее плиииз... Это сообщение отредактировал(а) DeamonShan - 22.5.2008, 12:39 |
||||||
|
|||||||
| DeamonShan |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 503 Регистрация: 26.11.2005 Репутация: нет Всего: 6 |
результат должен содержать:
строки со статусом 1, новые (за посл две недели..) строки со статусом 2, все строки со статусом 4, все не должен содержать: строки со статусом 3, все строки со статусом 1, старые (2 недельной давности... и больше) |
|||
|
||||
| Magnifico |
|
||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 418 Регистрация: 23.1.2008 Где: Московская област ь Репутация: 4 Всего: 17 |
Твою задачу пытался решить подзапросом
ошибка 1137 Can't reopen table Tbl а требовние к твоему результату изменилось , раньше ты не говорил что строки со статусом 2, все строки со статусом 4, все -------------------- Всё в порядке - спасибо зарядке ! |
||||
|
|||||
| DeamonShan |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 503 Регистрация: 26.11.2005 Репутация: нет Всего: 6 |
нет с самого начала я это и имел ввиду, наверное не правильно излагался(((
в общем, вот такая задача: результат должен содержать: строки со статусом 1, новые (за посл две недели..) строки со статусом 2, все строки со статусом 4, все не должен содержать: строки со статусом 3, все строки со статусом 1, старые (2 недельной давности... и больше) из таблицы: name time status ivan 1212154 1 - эта запись новая serg 6565659 2 tolik 5645454 4 qwert 6546455 1 - эту запись ввели две недели назад, ато и раньше qwer2 4644488 3 тогда результатом будет: ivan serg tolik |
|||
|
||||
| Magnifico |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 418 Регистрация: 23.1.2008 Где: Московская област ь Репутация: 4 Всего: 17 |
-------------------- Всё в порядке - спасибо зарядке ! |
|||
|
||||
| DeamonShan |
|
||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 503 Регистрация: 26.11.2005 Репутация: нет Всего: 6 |
а если статусов больше? все перечислять??? |
||||
|
|||||
| Magnifico |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 418 Регистрация: 23.1.2008 Где: Московская област ь Репутация: 4 Всего: 17 |
тогда нужен подзапрос а как он работает в mysql я не знаю
-------------------- Всё в порядке - спасибо зарядке ! |
|||
|
||||
| skyboy |
|
|||
|
неОпытный ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: 15 Всего: 260 |
таблица часом не временная? Добавлено через 17 секунд нормально он работает. Добавлено через 2 минуты и 24 секунды
|
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Составление SQL-запросов | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |