Dav*_*vid 6 mysql sql join phpmyadmin
我想知道如何使用另一个表中的值更新表,技巧是我需要设置限制因为我有数千行要更新,而且PHPmyadmin无法处理该负载.(我没有直接访问服务器)
我的表结构看起来像这样
wp_postmeta
meta_id,
post_id,
meta_key,
meta_value
wp_map
oldmap, newmap
我需要做的是加入的两个表wp_postmeta.meta_value和wp_map.oldmap,以及更新wp_postmeta.meta_value用wp_map.newmap.
这是我当前的查询,但我需要LIMIT在查询中添加100,因为我将查询拆分为更小的块,以便PHPMyAdmin可以处理.
UPDATE wp_postmeta
INNER JOIN wp_map
ON wp_map.oldmap = wp_postmeta.meta_value
SET wp_postmeta.meta_value = wp_map.newmap;
Run Code Online (Sandbox Code Playgroud)
我读过有关创建子查询的内容,但找不到任何相关的示例,因此如果有人能够引导我朝着正确的方向前进或提供一个有效的示例,我将不胜感激.
你可以这样试试
UPDATE wp_postmeta t JOIN
(
SELECT p.meta_id, m.newmap
FROM wp_postmeta p JOIN wp_map m
ON p.meta_value = m.oldmap
ORDER BY p.meta_id
LIMIT 100
) s
ON t.meta_id = s.meta_id
SET t.meta_value = s.newmap;
Run Code Online (Sandbox Code Playgroud)
这是SQLFiddle演示
| 归档时间: |
|
| 查看次数: |
9070 次 |
| 最近记录: |