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

Форум MySQL

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

 

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

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

тема: Выбрать минимальное значение (СТОЛБЕЦ2-СТОЛБЕЦ1)

Сообщения:  [1-4] 

 
 автор: cheops   (05.03.2006 в 13:04)   письмо автору
 
   для: Brat-2   (04.03.2006 в 19:46)
 

Ограничить число выводимых строк можно при помощи конструкции LIMIT, но запрос
select * from tablename where 15 between tablename.begin and tablename.end LIMIT 1

не подходит, так как он выводит не то, что вам нужно и результат совпадает с желаемым случайно. Можно воспользоваться запросом
SELECT MIN(end - begin) FROM tbl

если сразу требуется разница.

   
 
 автор: Brat-2   (04.03.2006 в 23:13)   письмо автору
 
   для: Himic   (04.03.2006 в 20:45)
 

возвращает просто значение 6, т.е. 21-15. А мне нужны значения 15 и 21.

   
 
 автор: Himic   (04.03.2006 в 20:45)   письмо автору
 
   для: Brat-2   (04.03.2006 в 19:46)
 

select не всё
а select min(end - begin)

select min(end - begin) from tablename where 15 between tablename.begin and tablename.end

   
 
 автор: Brat-2   (04.03.2006 в 19:46)   письмо автору
 
 

Задана таблица tablename:
+--------+--------+
| begin | end |
+--------+--------+
| 15 | 21 |
| 10 | 22 |
| 8 | 17 |
| 1 | 10 |
+--------+--------+
Нужно выбрать ОДНУ строку, которая соответствует условию:
begin =< мое_число =< end и минимум(end - begin).
Т.е. если мое_число = 15, то результат: 1-я строка.

Подскажите, плз., как это сделать на языке MySQL?

select * from tablename where 15 between tablename.begin and tablename.end
НЕ ПОДХОДИТ, т.к. выбирает 1, 2 и 3 строки. А мне нужно первую строку, где значение end минус begin МИНИМАЛЬНО, т.е. MIN(end-begin).

Спасибо.

   

Сообщения:  [1-4] 

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

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