2017-10-13 40 views
-1

Screenshot of tableMySQL的詮釋範圍選擇

我有一個表,具有attribute rangerange_type是min(-1)和max(1)屬性的值)和attribute_value是值。我需要選擇例如一個範圍從-1到15

我需要接收產品2僅僅是因爲他的最小值爲-5小於-1,最大值爲18以上15

我嘗試是這樣的:

SELECT product_id 
FROM `attribute_range` 
WHERE 
(`range_type` = -1 AND `attribute_value` <= -1) 
AND 
(`range_type` = 1 AND `attribute_value` >= 15) 

,但它不工作,任何人都可以幫我嗎?

+2

檢查類型列必須是數字,而不是VARCHAR。從數字中刪除引號。 – Roy

+0

查詢的條件是'range_type = -1 AND range_type = 1'。 range_type'如何在同一時間變爲'-1'和'1'? – axiac

回答

0

你應該使用子查詢:

SELECT product_id 
FROM `attribute_range` 
WHERE (`range_type` = -1 AND `attribute_value` <= -1) 
     AND produc_id in 
      (SELECT product_id 
      FROM `attribute_range` 
      WHERE (`range_type` = 1 AND `attribute_value` >= 15)) 
+0

在這種情況下,我收到產品ID 1和2,我只需要2,因爲產品1的最大值是12小於15 – Alaksander

+0

好吧,我現在不知道,我改變了我的答案 – nacho

+0

是的,這很好,非常感謝! – Alaksander