首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Mysql查询时,将基于其他

Mysql查询时,将基于其他
EN

Stack Overflow用户
提问于 2014-07-20 17:20:27
回答 2查看 48关注 0票数 0
代码语言:javascript
运行
复制
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。

任何对查询的帮助都将是很好的。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-07-20 17:34:10

如果希望给定post_id的“post_id”行与填充meta_value的同一post_id的行具有相同的meta_value,则可以使用以下方法:

代码语言:javascript
运行
复制
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

票数 1
EN

Stack Overflow用户

发布于 2014-07-20 17:51:25

代码语言:javascript
运行
复制
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
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24852990

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档