2016-08-24 5 views
2

В моем запросе SQLPHP Mysql сложный Заказывайте

SELECT unit_price,price_counter FROM products

Он отображает результат в виде таблицы. Последний столбец этой таблицы называется «Процент цены VS Counter». Формула для этого столбца в PHP выглядит следующим образом:

$PercentCompare = round((float)(($UnitPrice-$PriceCounter)/$UnitPrice) * 100);

Теперь клиент спрашивает, что таблица отсортирована на основе этого последнего столбца. Если этот столбец также является полем или столбцом в моей таблице products, я могу легко сделать ORDER BY, но этот столбец отображается только в таблице веб-страницы после использования приведенной выше формулы.

Вопрос, как я могу сортировать или использовать ORDER BY, если эта колонка является результатом вычисления/формулы? Я использую подготовленное заявление. Do do do:

SELECT unit_price,price_counter FROM products ORDER BY round((float)((unit_price-price_counter)/unit_price) * 100)?

EDIT второй ПОПЫТКА:

$InsertCalculation = ", round((float)((unit_price - price_counter)/unit_price) * 100) AS percentagecounter"; 
$QueryOrderBy = "perc_list_count"; 
$MyQuery = "SELECT itemid, address, city, state, zipcode, county, nameofowner, unit_price, price_counter, status" . $InsertCalculation . " FROM products WHERE itemid LIKE ? AND address LIKE ? AND city LIKE ? AND state LIKE ? AND zipcode LIKE ? AND county LIKE ? ORDER BY " . $QueryOrderBy . " ASC"; 
+0

Попробуйте 'ВЫБРАТЬ unit_price, price_counter, круглые ((поплавок) ((unit_price-price_counter)/unit_price) * 100) AS percentCompare FROM продуктов ORDER BY percentCompare'? – DVJex

+0

Упс. Ничего :( – jay

ответ

0

Вы можете рассчитать, а затем сделать заказ. что-то вроде этого

SELECT unit_price,price_counter, 
    ROUND(((unit_price-price_counter)/unit_price) * 100) as percentage_price 
FROM products 
ORDER BY percentage_price ASC 

Здесь вы можете рассчитать percentage_price, а затем сделать его заказ по

+0

Вы должны добавить round() тоже – scaisEdge

+0

@scaisEdge, спасибо за то, что я отредактировал свой ответ – keviveks

+0

Это не похоже на работу, оно заставляет таблицу результатов пустым :(Я отредактировал сообщение выше, чтобы покажу вам, что у меня точно – jay

Смежные вопросы