Better duplicate option delete query. Props miqrogroove. fixes #11649 for trunk

git-svn-id: https://develop.svn.wordpress.org/trunk@12560 602fd350-edb4-49c9-b593-d223f7449a82
This commit is contained in:
Ryan Boren 2009-12-28 16:25:56 +00:00
parent 78dcefaa71
commit 0a1c83449c
1 changed files with 1 additions and 5 deletions

View File

@ -1688,11 +1688,7 @@ function pre_schema_upgrade() {
// Upgrade versions prior to 2.9
if ( $wp_current_db_version < 11557 ) {
// Delete duplicate options. Keep the option with the highest option_id.
$delete_options = $wpdb->get_col("SELECT o1.option_id FROM $wpdb->options AS o1 JOIN $wpdb->options AS o2 ON o2.option_name = o1.option_name AND o2.option_id > o1.option_id");
if ( !empty($delete_options) ) {
$delete_options = implode(',', $delete_options);
$wpdb->query("DELETE FROM $wpdb->options WHERE option_id IN ($delete_options)");
}
$wpdb->query("DELETE o1 FROM $wpdb->options AS o1 JOIN $wpdb->options AS o2 USING (`option_name`) WHERE o2.option_id > o1.option_id");
// Drop the old primary key and add the new.
$wpdb->query("ALTER TABLE $wpdb->options DROP PRIMARY KEY, ADD PRIMARY KEY(option_id)");