Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Базы Данных > Сравнение текстовых цен


Автор: begin 28.9.2016, 23:22
Есть таблица товаров в базе MySql.
цены хранятся текстовом виде: "1000", "под заказ", "от 2000".

Мне надо сделать фильтр по цене "от до".
Пытаюсь сделать это таким запросом:

Код

$query="select * from `catalog` where (0+price)>='$price_min' and (0+price)<='$price_max'";


но ничего не выводит
также не срабатывают и другие варианты:

Код

$query="select * from `catalog` where (0+`price`)>='$price_min' and (0+`price`)<='$price_max'";
$query="select * from `catalog` where (`price`+0)>='$price_min' and (`price`+0)<='$price_max'";
$query="select * from `catalog` where 0+price>='$price_min' and 0+price<='$price_max'";
$query="select * from `catalog` where 0+`price`>='$price_min' and 0+`price`<='$price_max'";


Подскажите как это сделать средствами именно mysql, а не php?

Автор: igorold 29.9.2016, 06:47
я бы предложил посмотреть статистику цен и все-таки вырезать из нее слова через trim или replace и потом уже сравнивать
Если вариантов много, то печально.
Как вариант добавить дополнительное поле, где хранить числовую информацию, которую получать через регулярные выражения посредством языка, на котором заполняешь базу.

Этот ответ добавлен с нового Винграда - http://ru.vingrad.com/Sravneniye-tekstovykh-tsen-id57ec26e200b5b3484d6b85b2#findElement_E7045_57ec8ebfd440a90a090ff113_0

Автор: igorold 29.9.2016, 06:47
я бы предложил посмотреть статистику цен и все-таки вырезать из нее слова через trim или replace и потом уже сравнивать
Если вариантов много, то печально.
Как вариант добавить дополнительное поле, где хранить числовую информацию, которую получать через регулярные выражения посредством языка, на котором заполняешь базу.

Этот ответ добавлен с нового Винграда - http://ru.vingrad.com/Sravneniye-tekstovykh-tsen-id57ec26e200b5b3484d6b85b2#findElement_E7045_57ec8ebfd440a90a090ff113_0

Автор: igorold 29.9.2016, 06:47
я бы предложил посмотреть статистику цен и все-таки вырезать из нее слова через trim или replace и потом уже сравнивать
Если вариантов много, то печально.
Как вариант добавить дополнительное поле, где хранить числовую информацию, которую получать через регулярные выражения посредством языка, на котором заполняешь базу.

Этот ответ добавлен с нового Винграда - http://ru.vingrad.com/Sravneniye-tekstovykh-tsen-id57ec26e200b5b3484d6b85b2#findElement_E7045_57ec8ebfd440a90a090ff113_0

Автор: igorold 29.9.2016, 06:47
я бы предложил посмотреть статистику цен и все-таки вырезать из нее слова через trim или replace и потом уже сравнивать
Если вариантов много, то печально.
Как вариант добавить дополнительное поле, где хранить числовую информацию, которую получать через регулярные выражения посредством языка, на котором заполняешь базу.

Этот ответ добавлен с нового Винграда - http://ru.vingrad.com/Sravneniye-tekstovykh-tsen-id57ec26e200b5b3484d6b85b2#findElement_E7045_57ec8ebfd440a90a090ff113_0

Автор: igorold 29.9.2016, 06:47
я бы предложил посмотреть статистику цен и все-таки вырезать из нее слова через trim или replace и потом уже сравнивать
Если вариантов много, то печально.
Как вариант добавить дополнительное поле, где хранить числовую информацию, которую получать через регулярные выражения посредством языка, на котором заполняешь базу.

Этот ответ добавлен с нового Винграда - http://ru.vingrad.com/Sravneniye-tekstovykh-tsen-id57ec26e200b5b3484d6b85b2#findElement_E7045_57ec8ebfd440a90a090ff113_0

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)