2016-09-17 8 views
0

meta_key = '_thumbnail_id'がない場合はテーブルshp_postmetaに挿入します。特定の条件が満たされない場合に表に挿入する方法

shp_posts.ID = shp_postmeta.post_id

挿入された値が同じテーブルであるshp_postmetaここmeta_key = '_product_image_gallery'すなわちSQL文の形で

SELECT meta_key, meta_value FROM shp_postmeta WHERE meta_key = '_product_image_gallery' 

このテーブルを別のテーブルに関連しshp_postshp_postmetaのテーブル構造です。

meta_id | post_id | meta_key | meta_value 

テーブル構造shp_postsテーブルは:

ID | post_author | .... 

これらはワードプレスのテーブル構造です。 WPでは

EDIT 1

イメージを特色にしますが、彼らは、製品のギャラリー画像を持ってきていないいくつかのwoocommerce製品があります。画像はメディアにアップロードされます。ギャラリー画像を特集画像にしたいのですが、その画像には特色のない画像があります。製品は大量にあります。だから私はスクリプトを使ってそれを自動化したかったのです。

+0

を、あなたがそれを取得したいのですが、いくつかのサンプルデータと結果を共有することはできますか?それは質問をはるかに明確にするでしょう。 – Mureinik

+1

問題を明確にするために、編集を参照してください。 – PlanetHackers

答えて

1

shp_postmetaは、あなたが実行できるAUTO_INCREMENTのPKがあるので:

INSERT INTO shp_postmeta 
    SELECT null, p1.post_id, '_thumbnail_id', p1.meta_value 
    FROM shp_postmeta p1 
    WHERE p1.post_id NOT IN(
      SELECT p2.post_id 
      FROM shp_postmeta p2 
      WHERE p2.meta_key = '_thumbnail_id') 
    AND p1.meta_key = '_product_image_gallery' ; 
+0

構文エラーです。 2行目ではnullでなくてもかまいません。 – PlanetHackers

+0

構文エラー?どこ? – corretge

+0

最初のフィールドauto_increment PKをnullに設定する必要があります。 – corretge

関連する問題