meta_id | post_id | meta_key | meta_value
----------------------------------------------------------
19368 | 5716 | _wpbdp[fields][8] |
19369 | 5716 | _wpbdp[fields][9] | 124_ico.jpg
19370 | 5716 | _wpbdp[fields][10] |
这是我的mysql表。我希望如果在这个例子中,对于一个偏置的_wpbdp[fields][9]
有一些赋值值(124_ico.jpg),那么_wpbdpfields元雪崩被更新为124_img.jpg。
任何对查询的帮助都将是很好的。
发布于 2014-07-20 17:34:10
如果希望给定post_id的“post_id”行与填充meta_value的同一post_id的行具有相同的meta_value,则可以使用以下方法:
update tbl t join (select post_id, meta_value
from tbl
where meta_value is not null) x on t.post_id = x.post_id
set t.meta_value = replace(x.meta_value, '_ico', '_img')
where t.meta_key = '_wpbdp[fields][10]'
见小提琴at:http://sqlfiddle.com/#!2/6656ae/1/0
发布于 2014-07-20 17:51:25
SELECT @var:= meta_value FROM t WHERE meta_value IS NOT NULL;
SELECT @no:= REPLACE(REPLACE(SUBSTRING_INDEX(meta_key,']',-2),'[',''),']','')+1 FROM t
WHERE meta_value IS NOT NULL;
UPDATE t
SET meta_value = @var
WHERE REPLACE(REPLACE(SUBSTRING_INDEX(meta_key,']',-2),'[',''),']','')=
@no
ORDER BY meta_id
https://stackoverflow.com/questions/24852990
复制相似问题