Intereting Posts
Таксиномия пугает как var на родительской странице архива, не имея конкретной страницы таксономии Неподходящее название для сообщений Список авторов для текущей категории получить текущую таксономическую должность с помощью ajax Необходимо вручную зарегистрировать пользователя, отправить пароль и получить идентификатор пользователя Могу ли я использовать компоненты Symfony в плагине, который я хочу отправить в репозиторий плагинов WordPress? Помощник менеджера заданий менеджера? создание плагина, который перемещает другие плагины wp_head в wp_footer Котировки не отображаются должным образом в настройках WooCommerce API Получить пользователей, только если указан Gravatar создание настраиваемого шаблона сообщения WP Multisite Static Frontpage Все категории отображают одни и те же записи Измените woocommerce весовой вес продукта на основе своей категории продукта или тегов? Укажите ABSPATH в URL-адресе jQuery.

WordPress и SQL – обновление и вставка из другой таблицы, если значение столбца не существует

Застрял с некоторым mysql для моего сайта wordpress. Все в пределах 1 DB.

Я wp_options обновить таблицу wp_2_options из wp_2_options ( wp_2_options ).

Оба они имеют option_name (unique_key) и столбцы option_value

Он должен обновить значение option_value в таблице wp_options если option_name уже существует в таблице wp_2_options

И Вставьте строку из wp_2_options если option_name не существует.

Итак, как мне UPDATE и «ВСТАВИТЬ, используя значение UNIQUE KEY вместо PRIMARY KEY

Как мне это сделать?

Структура одинакова для обоих из них

wp_options ( option_id bigint(20) unsigned NOT NULL AUTO_INCREMENT, option_name varchar(64) NOT NULL DEFAULT '', option_value longtext NOT NULL, autoload varchar(20) NOT NULL DEFAULT 'yes', PRIMARY KEY (option_id), UNIQUE KEY option_name (option_name) ) ENGINE=InnoDB AUTO_INCREMENT=1402 DEFAULT CHARSET=utf8;

заранее спасибо


ОБНОВИТЬ:

Закончилось использование этого INSERT, затем UPDATE. Это сработало для меня. Будет просто использовать это через PHP сейчас.

-- Adding completely new rows from wp_2_options into wp_options INSERT IGNORE INTO wp_options SELECT * FROM wp_2_options WHERE option_name NOT IN (SELECT option_name FROM wp_options);

-- Updating the option_name field in wp_options, if that got changed in wp_2_options UPDATE wp_options JOIN wp_2_options ON wp_options.option_name = wp_2_options.option_name SET wp_options.option_value = wp_2_options.option_value;

Используйте PHP и WordPress API. Поместите следующее в copy-options.php и copy-options.php FTP на wp-content/plugins , затем активируйте его с основного сайта:

 <?php /** * Plugin Name: Copy Options * Plugin URI: http://wordpress.stackexchange.com/q/186092/1685 * Description: Copy options from site 2 to site 1. * Version: 0.1 * Author: TheDeadMedic * Author URI: http://wordpress.stackexchange.com/users/1685/thedeadmedic */ function wpse_186092_copy_options() { if ( 2 !== $blog_id = get_current_blog_id() ) switch_to_blog( 2 ); // Get all options from blog 2 $options = wp_load_alloptions(); // Switch to main blog switch_to_blog( 1 ); foreach ( $options as $name => $value ) update_option( $name, $value ); // Will update option if exists, insert if not // Switch back to current blog switch_to_blog( $blog_id ); } register_activation_hook( __file__, 'wpse_186092_copy_options' ); 

Сначала резервное копирование. Этот код не протестирован и поставляется без гарантии.