Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Регулярные выражения в SQL

Сообщения:  [1-10]    [11-20]  [21-25] 

 
 автор: cheops   (09.09.2005 в 01:24)   письмо автору
 
   для: Евгений Петров   (08.09.2005 в 21:41)
 

Да, это будет не лишним LIMIT здорово снижает нагрузку с сервера.

   
 
 автор: Евгений Петров   (08.09.2005 в 21:41)   письмо автору
 
   для: cheops   (08.09.2005 в 13:14)
 

А понял спасибо! Кстати как совет могу прдложить использовать ещё LIMIT 1 поскольку насколько я понимаю при этом если MySQL найдет одну запись, то дальше он искать не будет?
SELECT url FROM tbl WHERE sid = $sid AND time = '$time' LIMIT 1

   
 
 автор: cheops   (08.09.2005 в 13:14)   письмо автору
 
   для: Евгений Петров   (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'

   
 
 автор: Евгений Петров   (07.09.2005 в 21:09)   письмо автору
 
   для: Евгений Петров   (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. Заранее большое спасибо!

   
 
 автор: Евгений Петров   (28.08.2005 в 14:15)   письмо автору
 
   для: cheops   (28.08.2005 в 11:41)
 

Ясно спасибо.

   
 
 автор: cheops   (28.08.2005 в 11:41)   письмо автору
 
   для: Евгений Петров   (27.08.2005 в 21:33)
 

Когда используется GROUP BY, т.е. url берётся от фонаря какой ближе, и агрегатная функция по другому столбцу (MIN, MAX), к сожалению, это возможно. MIN() и MAX() возвращают минимальное и максимальное значения в пределах группы образованной GROUP BY - поэтому в этом случае чаще прибегают к циклу.

   
 
 автор: Евгений Петров   (27.08.2005 в 21:33)   письмо автору
 
   для: 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 тоже в разных строках.

   
 
 автор: cheops   (27.08.2005 в 21:24)   письмо автору
 
   для: Евгений Петров   (27.08.2005 в 15:32)
 

Если честно то не очень понял вопрос :)))

   
 
 автор: Евгений Петров   (27.08.2005 в 15:32)   письмо автору
 
   для: cheops   (26.08.2005 в 13:10)
 

А разве запрос может выбрать из базы данные из разных строк?

   
 
 автор: cheops   (26.08.2005 в 13:10)   письмо автору
 
   для: Евгений Петров   (26.08.2005 в 00:01)
 

Нет в один запрос не получится придётся выбирать уникальные sid - число, а потом в цикле по уникальным sid организовывать дополнительные запросы на выборку URL и времени.

   

Сообщения:  [1-10]    [11-20]  [21-25] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования