powered by simpleCommunicator - 2.0.19     © 2024 Programmizd 02
Map
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Одно и то же вычисляемое поле в выборке и в where?
3 сообщений из 3, страница 1 из 1
Одно и то же вычисляемое поле в выборке и в where?
    #40133769
OlegROA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день.

В запросе одно из полей выборки формируется из поля таблицы с использованием нескольких строчных функций.
Что то типа:
Код: sql
1.
STR_TO_DATE(CONCAT('01.', SUBSTRING(SUBSTRING_INDEX(tr.`commentary`, " от ", -1), 4, 7)), '%d.%m.%Y') as `period`


Есть необходимость фильтровать выборку по значению этого поля `period`.
В WHERE, естественно, его не вставишь.
Можно в HAVING его использовать, тем более что группировка производится по этому полю.
Но записей много и получается не очень эффективный по времени запрос. Особенно если нужно выбрать только один период.
Пока есть мысль просто тупо скопировать код формирования этого поля в WHERE что бы там и фильтровать.

Можно как то обойтись только одним местом использования этого кода?
...
Рейтинг: 0 / 0
Одно и то же вычисляемое поле в выборке и в where?
    #40133786
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
OlegROA
Пока есть мысль просто тупо скопировать код формирования этого поля в WHERE что бы там и фильтровать.

Правильная мысль. Тем более что выражение достаточно простое.

Одно смущает - странный формат даты, малопригодный для хоть чего-то, кроме отбора по списку.

OlegROA
Можно как то обойтись только одним местом использования этого кода?

Да не заморачивайся. Или, если это выражение везде в хвост и гриву, есть вычисляемые поля.
...
Рейтинг: 0 / 0
Одно и то же вычисляемое поле в выборке и в where?
    #40133787
Фотография Alex_Ustinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
OlegROA,

**** и получается не очень эффективный
по сути - делать выборку-группировку по дате, как части из строки "постановление №555 от 21.12.1900" - это более чем неразумно, тем более ожидать "эффективности".
хотя да, можно поместить выражение в WHERE, можно в HAVING

чтобы было эффективно - добавить поле period, куда на этапе заполнения данных записывать "период" для дальнейших манипуляций.
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Одно и то же вычисляемое поле в выборке и в where?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали тему (0):
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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