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

Форум MySQL

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

 

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

вид форума:
Линейный форум Структурный форум

тема: Вывод значения максимум и минимум
 
 автор: gofree   (25.09.2014 в 21:50)   письмо автору
 
 

Здравствуйте, подскажите пожалуйста. В базе содержатся года "с" и "по"
Как вывести значение минимум и максимум?
т.е. 1996-2002
1997-2005
1990-2003

вывести 1990 - 2005

значения "с" и "по" содержаться в разных полях, данные выводятся через foreach, т.к. после минимума и максимума нужно вывести весь список в том виде, в котором он записан в базе.

пробовал через min и max, но при таком запросе выводит первую запись, т.е. - 1996-2002

  Ответить  
 
 автор: gOFREe   (01.10.2014 в 13:27)   письмо автору
 
   для: gofree   (25.09.2014 в 21:50)
 

Никто не знает? Только отдельным запросом к базе?

  Ответить  
 
 автор: Valick   (01.10.2014 в 15:13)   письмо автору
 
   для: gOFREe   (01.10.2014 в 13:27)
 

ну для начала бы неплохо задачу объяснить человеческим языком.
ну и дамп структуры БД (что должно быть в первую очередь)

  Ответить  
 
 автор: Trianon   (01.10.2014 в 16:13)   письмо автору
 
   для: gOFREe   (01.10.2014 в 13:27)
 

>Никто не знает? Только отдельным запросом к базе?

Я бы сказал - никто не понял.
Но все скромно промолчали.

  Ответить  
 
 автор: gOFREe   (02.10.2014 в 15:40)   письмо автору
 
   для: Trianon   (01.10.2014 в 16:13)
 

Наверно некорректно объяснил.
Дамп простой.

with | to
-------------------
1996 | 2002
1997 | 2005
1990 | 2003
--------------------

Вывести сначала минимальный год и максимальный, из данного примера это 1990 - 2005
А далее весь список по порядку.

1996-2002
1997-2005
1990-2003

  Ответить  
 
 автор: Trianon   (02.10.2014 в 16:19)   письмо автору
 
   для: gOFREe   (02.10.2014 в 15:40)
 

вообще-то не with ( что означает вместе/совместно с кем/чем-нибудь), а from (что значит от, начиная с )
Значения минимума и максимума выводятся естественным
SELECT MIN(`from`) as `start`, MAX(`from`) as `end` 
  FROM `tbl`;

Значения списка по порядку можно вывести, если задан сам порядок.
Если порядок по началу временного периода, то
SELECT `from`, `to` 
  FROM `tbl`
  ORDER BY `from`;



Сразу замечу, что у самой таблицы определенного порядка хранения строк нет.
И как только кто-то говоит, что хочет вывод по порядку, а не абы как, так сразу этот кто-то оказывается вынужден этим порядком озаботиться.

Пытаться получить эти данные одним запросом особого смысла нет.
Если данные в таблице меняются столь внезапно, что результат первого запроса может переставть соответствовать результату второго, то тут можно посоветовать одно из двух.
Либо применять транзакции, либо считать минимум и максиимум на клиентской стороне.

В принципе, чисто теоретически, если эти данные кровь из носу нужны одним запросом, а считать их на клиенте неохота, можно применить модификатор ROLLUP (еще потребуется первичный ключ), только это увеличит нагрузку на сервер, а не уменьшит . И с учетом требования "сперва максимум, минимум , потом сами данные" - увеличит нагрузку кардинально.

  Ответить  
 
 автор: gOFREe   (09.10.2014 в 10:57)   письмо автору
 
   для: Trianon   (02.10.2014 в 16:19)
 

Я такой вариант уже пробовал, он почему то не всегда делает правильный выбор. Заданы конкретные параметры, а выводит как будто с потолка.

  Ответить  
 
 автор: Trianon   (09.10.2014 в 17:42)   письмо автору
 
   для: gOFREe   (09.10.2014 в 10:57)
 

пример в студию.
С дампом и кодом запроса.

PS. наверняка, Вы не учитываете какую-то собственную ошибку.

  Ответить  
 
 автор: Valick   (10.11.2014 в 00:18)   письмо автору
 
   для: Trianon   (09.10.2014 в 17:42)
 

например тип поля varchar пихают повсеместно

  Ответить  
Rambler's Top100
вверх

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