我正在尝试更新wordpress mu数据库中的表格。我想更新所有wp_options表。这些表的名称如下:
如何使用wp_any-character-here_options影响所有表?我试图查询:
UPDATE wp_%_options
SET option_value = replace(option_value, 'http://www.old-domain.com', 'http://www.new-domain.com')
WHERE option_name = 'home' OR option_name = 'siteurl';
...但是mysql抱怨我的语法错误......
答案 0 :(得分:0)
您不能使用通配符UPDATE
语句 - 您必须为每个表编写UPDATE
语句。
未测试:
CREATE PROCEDURE cleanup()
BEGIN
DECLARE i INT DEFAULT 1;
PREPARE stmt FROM "UPDATE ?
SET option_value = REPLACE(option_value, 'http://www.old-domain.com', 'http://www.new-domain.com')
WHERE option_name IN ('home', 'siteurl')"
WHILE i <= 10
EXECUTE stmt USING CONCAT('wp_', i, '_options');
SET i = i + 1;
END WHILE;
DEALLOCATE PREPARE stmt;
END;