2017-03-21 6 views
-2

私のウェブサイトで関数display_price()の出力として製品価格が表示される場合、どのようにクエリを価格で並べ替えることができますか?列の代わりに関数でMySQLクエリを並べ替える

商品の価格は100であり、基本通貨は、USD = 100USD
製品B 価格が95であり、基本通貨は、EU =価格ASCによって103USD

オーダーです。 A [製品Bをリストが、私は、出力に正しい価格を、この機能を使用します。

Function display_price($products_price, $currency_value) { 
$price = $products['price'] * $products['currency_value']; 
return $price; 
} 

どのように私はこのような状況で私のクエリを並べ替えることができますか?だから、クエリ自体ではなく、PHPでその値を計算

$price = $products['price'] * $products['currency_value']; 

+0

一般に、あなたが何を記述しているかについての追加情報はなく、SQLクエリのソートは 'ORDER BY'節で行われます。何らかの理由でそれが利用できない場合、または何らかの方法で動作しない場合は、問題を指定する必要があります。 – David

+0

計算列のエイリアスを使用するか、ORDER BY句の関数のみを使用します。 –

+0

@David例で問題を指定しました、ありがとう:) –

答えて

0

ありがとうこれは、あなたの照会データの中の単純な計算値を持っていることを意味します。クエリの構造を仮定すると、計算された列を追加します。

SELECT 
    some_field, 
    some_other_field, 
    and_so_on, 
    price, 
    currency_value, 
    price * currency_value AS product_price -- add the calculated value 
FROM 
    some_table 
ORDER BY 
    product_price -- sort by the calculated value 

PHPを一切必要としません。 PHPに関する限り、クエリの結果には必要な値が含まれており、必要な順番になっています。

+0

私はcurrency_idをcurrency_valueの代わりに持っています。通貨の価値は、他の関数に関連するクラスから来ています... PHP関数をORDER BY句に含める必要があるとします。 –

+0

@ LudwigArcache:MySQLでPHPコードを実行できるかどうかを尋ねる場合は、いいえ。あなたがどのようなオプションを持っているかについては、その質問の問題に関する情報を指定する必要があります。誰もあなたのデータベースやクエリ構造を知っている人はいません。 – David

関連する問題