2012-03-20 34 views
0

我有一個表SQL查詢更新行包含變量從陣列

id/product_id/var/active/price 

了var列包含:

e.g. (37:48:80) 

分隔的三個變量,我想將價格列更改爲設定值如果var包含正確的選項。

33:38:57 through to 80 would = 450 
33:39:57 through to 80 would = 0 
33:40:57 through to 80 would = 0 
33:41:57 through to 80 would = 450 

我想傳遞的第一個變量第二個變量組成的數組,如果匹配更新價格

我非常糟糕的SQL就像:

UPDATE 'price' = 450 
    WHERE 'var' = 33:array(38,41 etc):array(57,58 etc) 

我知道那真的是錯誤的,但思想可能會幫助你理解我想要做的事情。

+0

爲什麼你首先在數據庫的一個字段中有三個值? – kba 2012-03-20 02:22:30

+0

其如何打開購物車它非常令人討厭 – 2012-03-20 02:23:13

+1

向我們展示一些代碼。你期望什麼輸入是什麼輸出。 – kba 2012-03-20 02:23:51

回答

0

我不完全得到through to 80,但我知道你的查詢(我猜...)。我有點討厭正則表達式,但他們似乎是解決這個問題的正確工具。試試看:

update t set price = 450 
where var regexp '^33:(38|41):(57|58)$' 
+0

感謝偉大的工作到80我的意思是57,58 ... 79,80 – 2012-03-20 03:23:14