sql >> データベース >  >> RDS >> Mysql

WooCommerceで変動する商品価格を変更するMySQLクエリ

    //for Regular Price
    UPDATE wp_postmeta 
    SET meta_value = diff_price_value 
    WHERE post_id = variation_id AND meta_key = '_regular_price';
    
    //for Price
    UPDATE wp_postmeta 
    SET meta_value = price_value 
    WHERE post_id = variation_id AND meta_key = '_price';
    
    //for Sale Price
    UPDATE wp_postmeta 
    SET meta_value = price_value 
    WHERE post_id = variation_id AND meta_key = '_sale_price';
    

    追加 上記のすべてのクエリを1つのクエリにマージする場合は、次のクエリを使用できます。

    UPDATE wp_postmeta
    SET meta_value = CASE
                       WHEN meta_key = "_regular_price" THEN diff_price_value
                       WHEN meta_key = "_price" THEN price_value
                       WHEN meta_key = "_sale_price" THEN price_value
                       ELSE meta_key
                   END
    WHERE post_id = variation_id
      AND meta_key IN ("_regular_price", "_price", "_sale_price");
    

    また、wp_optionsに保存されているWooCommerce製品の価格キャッシュを削除する必要があります _transient_timeout_wc_var_prices_{{post_id}}の下のテーブル および_transient_wc_var_prices_{{post_id}} option_name

    DELETE
    FROM `wp_options`
    WHERE (`option_name` LIKE '_transient_wc_var_prices_%'
        OR `option_name` LIKE '_transient_timeout_wc_var_prices_%')
    

    上記のクエリはすべてテストされ、機能しました。

    このクエリを実行する前に、データベースのバックアップを作成してください

    参照: WooCommerce製品のセール価格を通常価格にコピーし、セール価格をリセット

    これがお役に立てば幸いです!




    1. Microsoft SQLServer2000でMySQLLIMIT句をエミュレートする

    2. 距離クエリ内のMysql

    3. SQL:列の値が前の行から変更された行を選択する

    4. このMySQLテーブルの行の親IDを再帰的に取得するにはどうすればよいですか?