Необходима помощь в sql запросе

251
28 ноября 2017, 23:38

Необходимо создать фильтр в таблице по трем столбцам: обьем, высота, диаметр. Необходимо выводить в таблице результаты максимально приближенные к значениям введенным в поля фильтра к примеру вводим в поле обьема 5 и должно вывести обьекты с максимально близкими значениями из бд. Если в бд есть обьемы 1, 2, 3, 5, 8, 10, 12 , то должно вывести обьекты с обьемом 3, 5, 8.

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

Answer 1

Вот так покажет два ближайших

SELECT * FROM table_name 
order by abs((heght*length*width) - volume) limit 2;
Answer 2

Sql не пой профиль, но может это поможет?

select top 1 
    a.height
from tableA as a
where
    a.height < [ConcreteHeight]
order by a.height desc
union
select top 2 
    a.height
from tableA as a
where
    a.height >= [ConcreteHeight]
order by a.height
Answer 3

Для поиска числа, меньшего искомого, и числа, большего искомого, выполним такой запросик:

SELECT
    * 
FROM
    table_name
WHERE 
    volume = (SELECT MIN(volume) FROM table_name where volume > 45) 
    OR volume = (SELECT MAX(volume) FROM table_name where volume < 45)
    OR volume = 45

45 - ваша цифра (введенная в поле объема)

//Тестовая колонка - запрос 45
29
30
31
45
46
47
//Выведет
31
45
46

Данный код предназначен для поиска значений объема, то есть для 3 разных колонок придется выполнить три раза - для объема, высоты, диаметра.

По мотивам https://stackoverflow.com/questions/1084390/how-to-find-the-previous-and-next-record-using-a-single-query-in-mysql (ключевые слова для поиска mysql neighbor nearest)

Answer 4
 SELECT * FROM table_name ORDER BY ABS(height- :height) 

где :height значение фильтра.

READ ALSO
Ссылка в формате предзагрузки

Ссылка в формате предзагрузки

Объясните пожалуйста каким образом можно сделать следующее: При открытии новой вкладки в хроме он открывает поиск и несколько "часто посещаемых...

243
Скрипт личных сообшений [требует правки]

Скрипт личных сообшений [требует правки]

Кто сможет дать ссылку где подробно объясняют про реализации отправки личных сообщений другому пользователю c использованием сессии куки

185
Сортировка массивов в php

Сортировка массивов в php

Добрый день , не могли бы вы подсказать как можно сортировать массив по $valueДелал

247