Страницы

Поиск по вопросам

суббота, 15 июня 2019 г.

Нужен совет по необычному SQL-запросу из PHP

В таблице БД apartments площадь квартиры хранится в строке square по следующему шаблону: *«общая-жилая-кухня». Таким образом, это выглядит как 32-28-6
Теперь стоит вопрос: как сформировать SQL-запрос, если нужно вывести только общую площадь не менее нужного значения? Я понимаю, что задача не простая, но база уже наполнена объявлениями, и в систему поиска предстоит добавить только этот функционал, не нарушая работы остальных участков кода проекта.
До какого-то момента я использовал ошибочный запрос (но это не вариант):
SELECT * FROM apartments WHERE square LIKE '30-%'
Средства PHP задействовать можно, но здесь в самом запросе идет уже деление на страницы через LIMIT. Таким образом, если после получения результатов поиска мы будем отбирать «нужные» по площади квартиры, то у нас на одной странице получится 10 записей, а на другой меньше или вообще ничего.
Ребята, большое ВАМ спасибо за оперативное решение сложного для меня вопроса! Особенно благодарен пользователям cache и Akina - ваше решение успешно работает!


Ответ

SELECT * FROM apartments WHERE 0+SUBSTRING_INDEX(square,'-',1) >= 30;

Комментариев нет:

Отправить комментарий