2014-12-04 65 views
-3

我有一個電子商務網站,在這裏我需要2個價位如何建立MySQL查詢2種產品價格

我使用下面的MySQL查詢多個價格點 enter image description here之間進行選擇的產品之間進行選擇

$select_query = "select * from product where `enabled`='1' and `price` between '" . $min_price . "' and '" . $max_price . "'"; 

我想延長這個查詢,在這裏我需要選擇2個價位之間的產品:

  1. 全選親管道花費低於50
  2. 選擇全部花費100和150之間
  3. 選擇所有的產品花費超過200

任何想法,如何建立這樣的查詢的產品?

+0

您可以與多個準備SQL語句的WHERE子句與OR – AK47 2014-12-04 04:54:52

+0

作爲一個選擇,你可以有一個WHERE條件多重選擇&在底部,你可以聯合所有記錄 – AK47 2014-12-04 04:57:41

回答

1

你需要有選擇的條件與條件WHERE子句或您一個有複選框

select * 
from product 
where enabled='1' 
and (price <50 or (price between 100 and 150) or price >200) 
+0

以及如果一箱「150以上」也被檢查?你會再次改變查詢嗎? – AK47 2014-12-04 04:56:30

+0

@ AK47,不知道關於PHP,我想我們可以根據選擇的optins動態地構建查詢。 – radar 2014-12-04 04:59:08

+0

這就是我的觀點,你直接寫了查詢。應該有這樣的查詢,它將具有動態的語法。目前,您的答案僅針對用戶提及的問題。但在更廣泛的情況下,更多的過濾器/條件將出現在圖片中 – AK47 2014-12-04 05:18:44

1

它總是建議使用PHP變量在查詢中使用。

當有一點指向範圍時,它需要兩個變量($min_price$max_price)。 現在有兩個範圍,所以使用四個變量來存儲範圍($min_price1,$min_price2,$max_price1$max_price2)。

首先存儲這些變量的範圍。請參閱此頁PHP: Get Values of Multiple Checked Checkboxes

[注:如果第一個選項被選中,然後採取$min_price1 = 0$max_price1 = 50。也照顧了最後一個選項]

現在查詢:

SELECT * 
FROM product 
WHERE enabled='1' 
AND ((price BETWEEN $min_price1 AND $max_price1) OR (price BETWEEN $min_price2 AND $max_price2))