Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Построчное умножение столбцов внутри WHERE / 4 сообщений из 4, страница 1 из 1
27.08.2018, 01:31
    #39693491
Fullstack
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Построчное умножение столбцов внутри WHERE
Есть фильтр цен (на постройку домов) по такому коду внутри WHERE:

Код: plaintext
TVprice.value >= 500 AND TVprice.value <= 1000
(цена: от 500 тыс. руб. до 1000 тыс. руб.)

Отлично работало, когда прописывалась полная цена за дом. Но сейчас прописывается цена за квадратный метр, и поэтому фильтр сломался. Чтобы он заработал, надо сделать выборку тех домов, у которых произведение цены на площадь (цена * площадь) будет от 500 до 1000 тыс. руб.

Я попробовал такой WHERE:

Код: plaintext
(TVprice.value * TVsquare.value) >= 500 AND (TVprice.value * TVsquare.value) <= 1000

, но фильтр не работает как и прежде. Помогите, что делать? Как прописать WHERE?
...
Рейтинг: 0 / 0
27.08.2018, 07:46
    #39693508
vkle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Построчное умножение столбцов внутри WHERE
В приведенном выражении WHERE ничего криминального, должно работать. Возможно, таблица TVsquare неправильно связана с TVprice. Есть такая связь?

Другой момент, после замены значения поля в левой части выражения на формулу индекс использовать невозможно и запрос будет работать медленно.
...
Рейтинг: 0 / 0
27.08.2018, 07:53
    #39693512
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Построчное умножение столбцов внутри WHERE
Поскольку таблица цен скорее всего компактная, разумнее получить в подзапросе диапазон площадей для каждой цены, и использовать эти данные в основном запросе. Хотя бы на одной, причём более пухлой, таблице, будет работать индекс...
...
Рейтинг: 0 / 0
29.08.2018, 04:35
    #39694633
Fullstack
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Построчное умножение столбцов внутри WHERE
Понял, в чем дело! До перехода на цены за квадратный метр они указывались в тысячах (например просто 236, без нулей на конце), поэтому диапазон в запросе был от 500 до 1000. А сейчас цены указываются без тысяч. То есть надо к 500 и 1000 дописать на конце 000 :)

Так что вот оно как, нашел косяк! Как надо:

Код: plaintext
(TVprice.value * TVsquare.value) >= 500000 AND (TVprice.value * TVsquare.value) <= 1000000
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Построчное умножение столбцов внутри WHERE / 4 сообщений из 4, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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