В таблице БД 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;
Комментариев нет:
Отправить комментарий