|
|
|
|
|
для: Евгений Петров
(08.09.2005 в 21:41)
| | Да, это будет не лишним LIMIT здорово снижает нагрузку с сервера. | |
|
|
|
|
|
|
|
для: cheops
(08.09.2005 в 13:14)
| | А понял спасибо! Кстати как совет могу прдложить использовать ещё LIMIT 1 поскольку насколько я понимаю при этом если MySQL найдет одну запись, то дальше он искать не будет?
SELECT url FROM tbl WHERE sid = $sid AND time = '$time' LIMIT 1
|
| |
|
|
|
|
|
|
|
для: Евгений Петров
(07.09.2005 в 21:09)
| | Осуществлять запросы
SELECT MAX(time), sid AS time FROM tbl GROUP BY sid ORDER BY time
|
и
SELECT MIN(time), sid AS time FROM tbl GROUP BY sid ORDER BY time
|
А затем в цикле обработки для каждой записи выполнять запрос
SELECT url FROM tbl WHERE sid = $sid AND time = '$time'
|
| |
|
|
|
|
|
|
|
для: Евгений Петров
(28.08.2005 в 14:15)
| | Cheops чего то уменя не очень получается. Подскажите пожалуйста как мне из этой таблицы вывести следующие записи:
Таблица:
+--------------------------+---------------------+------------+
| url | time | sid |
+--------------------------+---------------------+------------+
| http://chat.ru | 2005-08-25 18:19:30 | 1124981868 |
| http://chat.ru/page4.htm | 2005-08-25 18:19:42 | 1124981868 |
| http://chat.ru/page2.htm | 2005-08-25 17:59:04 | 1124981944 |
| http://chat.ru/page3.htm | 2005-08-25 17:59:11 | 1124981944 |
+--------------------------+---------------------+------------+
|
Нужно вывести:
+--------------------------+---------------------+------------+
| url | time | sid |
+--------------------------+---------------------+------------+
| http://chat.ru | 2005-08-25 18:19:30 | 1124981868 |
| http://chat.ru/page2.htm | 2005-08-25 17:59:04 | 1124981944 |
+--------------------------+---------------------+------------+
|
и
+--------------------------+---------------------+------------+
| url | time | sid |
+--------------------------+---------------------+------------+
| http://chat.ru/page4.htm | 2005-08-25 18:19:42 | 1124981868 |
| http://chat.ru/page3.htm | 2005-08-25 17:59:11 | 1124981944 |
+--------------------------+---------------------+------------+
|
Т.е. записи с минимальным и максимальным time в пределах группы sid. Заранее большое спасибо! | |
|
|
|
|
|
|
|
для: cheops
(28.08.2005 в 11:41)
| | Ясно спасибо. | |
|
|
|
|
|
|
|
для: Евгений Петров
(27.08.2005 в 21:33)
| | Когда используется GROUP BY, т.е. url берётся от фонаря какой ближе, и агрегатная функция по другому столбцу (MIN, MAX), к сожалению, это возможно. MIN() и MAX() возвращают минимальное и максимальное значения в пределах группы образованной GROUP BY - поэтому в этом случае чаще прибегают к циклу. | |
|
|
|
|
|
|
|
для: cheops
(27.08.2005 в 21:24)
| | Вот смотрите у меня таблица:
+--------------------------+---------------------+------------+
| url | time | sid |
+--------------------------+---------------------+------------+
| http://chat.ru | 2005-08-25 18:19:30 | 1124981868 |
| http://chat.ru/page4.htm | 2005-08-25 18:19:42 | 1124981868 |
| http://chat.ru/page2.htm | 2005-08-25 17:59:04 | 1124981944 |
| http://chat.ru/page3.htm | 2005-08-25 17:59:11 | 1124981944 |
+--------------------------+---------------------+------------+
|
SELECT url,MIN(time) FROM counter GROUP BY sid
|
Выводит все правильно:
+--------------------------+---------------------+
| url | MIN( time ) |
+--------------------------+---------------------+
| http://chat.ru | 2005-08-25 18:19:30 |
| http://chat.ru/page2.htm | 2005-08-25 17:59:04 |
+--------------------------+---------------------+
|
Посмотрите и url и time находятся в одной строке
А
SELECT url,MAX(time) FROM counter GROUP BY sid
|
Выводит какую то фигню:
+--------------------------+---------------------+
| url | MIN( time ) |
+--------------------------+---------------------+
| http://chat.ru | 2005-08-25 18:19:42 |
| http://chat.ru/page2.htm | 2005-08-25 17:59:11 |
+--------------------------+---------------------+
|
Смотрите 2005-08-25 18:19:42 и http://chat.ru в таблице находятся в разных строках и 2005-08-25 17:59:11 и http://chat.ru/page2.htm тоже в разных строках. | |
|
|
|
|
|
|
|
для: Евгений Петров
(27.08.2005 в 15:32)
| | Если честно то не очень понял вопрос :))) | |
|
|
|
|
|
|
|
для: cheops
(26.08.2005 в 13:10)
| | А разве запрос может выбрать из базы данные из разных строк? | |
|
|
|
|
|
|
|
для: Евгений Петров
(26.08.2005 в 00:01)
| | Нет в один запрос не получится придётся выбирать уникальные sid - число, а потом в цикле по уникальным sid организовывать дополнительные запросы на выборку URL и времени. | |
|
|
|
|