[英]Mysql query, populate a value based on other
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表。 我想如果在這種情況下,對於postid,元_wpbdp[fields][9]
分配了一些值(124_ico.jpg),則_wpbdp [fields] [10]元值更新為124_img.jpg
查詢的任何幫助將是巨大的。
如果希望給定post_id的'_wpbdp [fields] [10]'行具有與meta_value所在行相同的meta_value,則可以在其中填充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]'
請在以下位置查看小提琴: http ://sqlfiddle.com/#!2/ 6656ae/1/0
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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.