2014-01-08 64 views
1

我有一個價格:價格比較

$price = 100; 

我有2個數據庫領域

1) priceType 
2) price 

現在的情況是:應進行

if priceType =1 

CASE 1: price <= $price // Do this comparison in WHere Clause 

if priceType =2 

CASE 2: price* (800000/1000) <= '$price' // Do this comparison in WHere Clause 

只需一個人操作一次取決於priceType。

如果priceType = 1,則應比較第一種情況的$價格。

如果priceType = 2比$價格應以第二種情況進行比較。

我想在Where子句中執行此操作。

查詢應該是什麼樣子?

+0

如果你使用MySQL來看看在IF聲明或看這裏http://stackoverflow.com/questions/5951157/mysql-if-in-select-statement –

+0

發佈更新請檢查 –

+0

你有2個答案,有什麼不對嗎? – DanFromGermany

回答

1

試試這個:

SELECT * FROM tableA 
WHERE (CASE priceType WHEN 1 THEN price WHEN 2 THEN price * (800000/1000) END) <= $price 
+0

你能解釋這個查詢嗎? –

+0

發佈更新,請檢查 –

+0

@CodeHunter我的詢價單與您要詢問的內容相同 –

0

IF

SELECT 
    IF (priceType = 1, price, 
     IF (priceType = 2, price * (800000/1000), 
      'unknown priceType' 
     ) 
    ) AS price 
FROM priceTable 

更新:

我也許missunderstood ...

SELECT price 
FROM priceTable 
WHERE (priceType = 1 AND price <= " . $price . ") 
OR (priceType = 2 AND (price* (800000/1000)) <= " . $price . ") 
+0

發佈更新,請檢查 –