2017-08-07 5 views
0

MySQL DB用にスケジュールされた自動アップデータを作成しようとしています。私が使用するスクリプトを以下に示します。テーブルwp_postsからユニークな製品のみをテーブルexport_copyに挿入することが考えられます。しかし、これは何も挿入しません。 スクリプトを修正するのを手伝ってください。あるテーブルから別のテーブルに一意のエントリのみをコピーする

INSERT INTO `export_copy`(`name`, `link`) 
 
SELECT p.post_title, p.guid 
 
FROM wp_posts p 
 
WHERE NOT EXISTS (
 
    SELECT * 
 
    FROM export_copy, wp_posts 
 
    WHERE export_copy.id=wp_posts.ID)

+0

を挿入する輸出配列はhttps://meta.stackoverflow.com/questions/333952/why-should-i-provide-an-mcve-for-what-seems-to-me-toを参照してください。 -be-a-very-simple-sql-query – Strawberry

答えて

0

あなたのクエリが動作しません!

あなたのテーブルの名前が「wp_posts」であるので、それはあなたが望むように見えるあなたは、PHPでこれを処理することができ、独自の

にwordpressのテーブルからデータをコピーし、firtあなたは、テーブルからデータを取得し、配列にそれを保存する必要があり、その後、クエリ

$link = mysqli_connect(Your_HOST , Your_User , YOUR_Pass, DB_NAME); 
$q = "SELECT p.post_title, p.guid FROM wp_posts p WHERE NOT EXISTS (SELECT * FROM export_copy, wp_posts WHERE export_copy.id=wp_posts.ID)"; 
$result = mysqli_query($link, $q); 
$i=0; 
while($row=mysqli_fetch_assoc($result)) 
{ 
    $a[$i]['name'] = $row['post_title']; 
    $a[$i]['link'] = $row['post_title']; 
    $i++; 
} 
$q = ''; 
foreach($a as $a) 
    $q .= "('".$a['name']."','".$a['link']."'),"; 

$q = substr($q,0, (strlen($q)-1)); 
$q = "INSERT INTO `export_copy`(`name`, `link`) VALUES " . $q; 
$result = mysqli_query($link, $q); 
+0

ナンセンス。最初に何かを選択する必要はありません。実際それを行うことは潜在的に非生産的であろう。 – Strawberry

+0

親愛なるイチゴ、selectを使用すると、SQLでネストされたselectを減らすことができます。これはPHPによる唯一の解決策です。質問はWordPressの問題です.SQLソリューションに関するアイデアがあれば、ここで共有してください。 –

+0

私は何もないあなたのコメントは意味をなさない。この会話を続けることは無意味なようです。 – Strawberry

関連する問題