私は小さなカスタムカスタムeコマースサイトにさまざまな在庫アイテムを含むテーブルを扱っています。私のクライアントは、価格帯を含むいくつかのフィルタを要求しています。動的に生成されたフィールド値の値による選択
ユーザーのアカウントのさまざまな要因に基づいてユーザーに応じた価格設定が必要であることを除けば、簡単です。そのため、価格はクエリで計算されます。
理想的なSQLはこのようなものです:ORDER
がするようSELECT
計算は、正常に動作することを明らかに
SELECT
SQL_CALC_FOUND_ROWS s.*,
IF(s.value_a <= 0.5, s.price*1.1*0.80, s.price*1.5*0.80) AS total_price
FROM stock s
WHERE
(total_price >= :minimum_price_filter AND total_price <= :maximum_price_filter)
AND (s.value_b='X' OR s.value_b='Y')
ORDER BY total_price ASC, s.value_a, s.value_b LIMIT 0,25
、および(1.1*0.80
と1.5*0.80
は、4つのユーザ依存の値です。) WHERE
がテーブル内の他の値に対して表示されますが、この価格フィルタでの追加はその価格フィールド(total_price
)として機能せず、その値はクエリで動的に生成されます。
WHERE
欄に価格帯フィルタを追加する方法に関するヒントやヒントは、実際には可能でしょうか?
WHERE (total_price >= :minimum_price_filter AND total_price <= :maximum_price_filter)
それが問題に接近する方法にいずれかが違う場合は、私はPHPおよびPDOで働いています。
お時間をいただきありがとうございます。
完璧、ありがとう!私は「HAVING」を読んでいることを確認します。とても有難い。 – Aaron