2017-02-04 15 views
1

エラーを回避するために、以下のクエリを書き直すにはどうすればよいですか? "FROM句"?エラーを修正する方法SQLテーブルの更新時に "FROM句で更新対象のテーブルを指定できません"

UPDATE wp_postmeta 
SET meta_value = meta_value + 'A' WHERE (SELECT post_title FROM wp_posts A 
LEFT JOIN wp_postmeta B ON B.post_id = A.id WHERE A.post_type = 'player' AND 
B.meta_key ='_yoast_wpseo_metadesc') = 'Eric Bledsoe' 
+0

あなたがしたいことを説明してください。あなたのクエリは 'wp_postmeta'のすべての行を更新するか、それらのどれも更新していません。私はそれが意図であるとは思わない。さらに、MySQLでエラーを返す 'meta_value + 'A''があります。 –

+0

'meta_value + 'A''は数値を数値型にキャストして追加します。 –

答えて

2

これはMySQLの制限です。代わりにjoinを使用できます。 、クエリのコメントで述べたように

UPDATE wp_postmeta pm JOIN 
     wp_posts p 
     ON pm.post_id = p.id AND 
      p.post_type = 'player' AND 
      pm.meta_key ='_yoast_wpseo_metadesc' 
    SET pm.meta_value = CONCAT(pm.meta_value, 'A') 
WHERE p.post_title = 'Eric Bledsoe'; 

いずれかのすべてのwp_postmetaの行またはそれらのどれを更新します。これは、あなたのクエリでいきものに1つの推測です。サブクエリには、外部クエリとの関連付け句はありません。

関連する問題