MySQL символ подстановки (игнорировать один / два символа в поиске) - PullRequest
0 голосов
/ 23 января 2010

Я пытаюсь обновить таблицы в моей базе данных WordPressMU. Я хочу обновить все таблицы wp_options. Эти таблицы названы так:

  • wp_1_options
  • wp_2_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 жалуется, что у меня ошибка в синтаксисе ...

1 Ответ

0 голосов
/ 23 января 2010

Вы не можете подстановить операторы 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;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...