2014-02-24 44 views
0

切換值如果條件添加到SQL查詢,但我不確切知道如何在SQL中的if else語句工作,我想切換值。如果條件MYSQL

這是我的查詢:

數據庫:

attr_id 
st_id 
prod_id 
value 

數據:

$attr_id1 = "75"; 
$attr_id2 = "76"; 
$st_id  = array('2','2','2','2'); 
$prod_id = array('2','3','4'); 
$value = array('150','200','300'); 

SQL:

"INSERT INTO table 
    (attr_id, st_id, prod_id, value) 
    VALUES (IF(value from $attr_id2 is < less that $value switch to $attr_id2 else to $attr_id1), ".$st_id.", ".$prod_id.", ".$value.") 
    ON DUPLICATE KEY UPDATE 
    value = (".$value.")"; 
    "WHERE attr_id = ".$attr_id1." //OR ATTR_ID2 
    AND st_id = ".$st_id." 
    AND prod_id = ".$prod_id." 
" 

DATATABLE:

attr_id st_id prod_id value 
75   2  2  150 
76   2  2  200 
75   2  3  300 
76   2  3  290 
76   2  4  200 

任何幫助表示讚賞。

+0

不清楚你想要什麼 – ray

+0

是的,我想我還沒有很好的解釋。我想要的是切換列attr_id1與attr_id2如果來自attr_id2的值小於attr_id1 – Dario

+0

@Dario您的列是'attr_id'所以想要切換此列的值是正確的嗎? –

回答

0

您可以使用CASE

INSERT INTO TABLE (attr_id, st_id, prod_id, VALUE) 
VALUES 
    (
    CASE 
     WHEN ".$attr_id2." < ".$attr_id1." 
     THEN ".$attr_id2." 
     ELSE ".$attr_id1." 
    END, 
    ".$st_id.", 
    ".$prod_id.", 
    ".$value." 
) ..... 
+0

在需要的情況下當'attr_id2'中的'value'小於'attr_id1'這種情況下,所有的時間都是'attr_id2',因爲75小於76 – Dario

+0

@Dario是的,我想這就是你在評論中所說的 –

+0

attr_id包含75和76的值,75是價格,76是special_price,所以我想要的是當75的值小於75時將值從75或76改變比76,我更新了我的問題以獲得更多的理解。 – Dario