powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / как улучшить запрос
2 сообщений из 2, страница 1 из 1
как улучшить запрос
    #38459015
aleXVoipp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Дано : таблица MAN с полями
Код: sql
1.
id , name , address , telephone


Задача : выбрать человека(ТОЛЬКО имя) , у которого телефон заканчивается на 55, и адресс при этом самый длинный из таких.
Решение:
Я изначально отверг создание новой таблицы , куда положил бы всех людей с требуемым телефоном.
Так же отверг пользоватлеьскую функцию с запросом на выборку людей с требуемым телефоном.
Пытался сделать так :
Код: plsql
1.
SELECT name , MAX(LENGTH(address))FROM MAN WHERE telephone LIKE '%55' 


Но тут 2 беды :
1) Надо группировать, а если это выоплнить, то максимум не будет найден по всей таблице, а лишь по группам
2) в результат попадет столбец с максимуом адреса, мне он не нужен
выполнять два раза выборку по телефонам для поиска сначала максимума , а потом человека с адресом такой длины нерационально.
PS объясните, почему необходимо группировать значения перед вычислением максимума, в случае , если нужн овывести ЕЩЕ ОДНО поле.
Поомгите написать запрос
...
Рейтинг: 0 / 0
как улучшить запрос
    #38459057
Фотография javajdbc
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
aleXVoipp,

Это очень частая задача, посмотрите ФАК
"выборка первой/последней записи".
Стандартное решение -- подзапрос или
аналогичное само-соединение.

кстати, если у вас часто запросы имено с конца
телефона, то можно добавить еше одно поле
с телефоном-перевертышем и индексом на нем.
Тогда поиск может зацепить индекс и
скорость возрастет на порядок (-дки).
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / как улучшить запрос
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]