sql查询更新行如果包含数组中的变量

时间:2012-03-20 02:17:15

标签: mysql arrays

我有一张桌子

id / product_id / var / active / price

var列包含由:

分隔的三个变量
e.g. (37:48:80)

如果var包含正确的选项,我想将price列更改为设置值。

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)

我知道这确实是错的,但想到可能会帮助你理解我正在做的事情。

1 个答案:

答案 0 :(得分:0)

我不太了解through to 80,但我知道你的查询(我猜......)。我有点讨厌正则表达式,但它们似乎是解决这个问题的正确工具。试一试:

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