Всем привет!
Вопрос в следующем:
У меня есть база данных и столбец с названием "xfields" в котором примерно такая структура содержимого:
------| --xfields---
ID1--| price|7510
------| -------------
ID2--| price|1500
------| -------------
ID3--| price|10000
------| -------------
Как сформулировать запрос с использованием foreach для отображения тех записей что есть в нужном диапазоне цен?
К примеру в поле "Цена от" я указываю 8000 а в поле "Цена до" я указываю 1000000. Чтобы запрос выдал только те id что попадают в указанный ценовой диапазон значения price| ?.
Нюанс в том что прямо там же в столбце через запятую может быть и другое значение, например:
price|1000, color|balck, bg|dark и так далее.
Вот так выглядит столбец xfields
Сейчас у меня используется вот такой вариант поиска по диапазону:
$where[] = "ABS(SUBSTRING_INDEX(SUBSTRING_INDEX(xfields, '{$key}|', -1 ), '||', 1))>={$value[0]} AND ABS(SUBSTRING_INDEX(SUBSTRING_INDEX(xfields, '{$key}|', -1), '||', 1))<={$value[1]}";
$key это название значения(price);
Но этот способ крайне не точен и нестабилен. Есть ли альтернативы?