2016-07-01 2 views
0

Я пытаюсь поменять записи с помощью MySql Quariy и продолжать получать 1093 Err Я пробовал все советы об использовании подзапросов с помощью нет успехаerr # 1093 - Вы не можете указать целевую таблицу «wp_posts» для обновления в разделе FROM

может быть, кто-то может помочь мне

UPDATE wp_posts SET post_content = CONCAT(post_content , 'testext_bla_bla') 
WHERE wp_posts.id in (select wp_posts.ID 
from wp_posts 
LEFT JOIN wp_term_relationships on wp_posts.ID = wp_term_relationships.object_id 
LEFT JOIN wp_term_taxonomy ON wp_term_taxonomy.term_taxonomy_id = wp_term_relationships.term_taxonomy_id 
LEFT JOIN wp_terms ON wp_terms.term_id = wp_term_relationships.term_taxonomy_id 
WHERE wp_posts.post_excerpt like '%LO1185LH%' and wp_term_taxonomy.term_taxonomy_id = 27) 

и продолжать получать «# 1093 - Вы не можете указать целевую таблицу„wp_posts“для обновления в ЕКОМ»

спасибо ASAF

ответ

0

Используйте alias для вас обновленный таблицу;)

UPDATE wp_posts t1 SET t1.post_content = CONCAT(t1.post_content, 'testext_bla_bla') 
WHERE t1.id IN (
SELECT wp_posts.ID 
FROM wp_posts 
LEFT JOIN wp_term_relationships ON wp_posts.ID = wp_term_relationships.object_id 
LEFT JOIN wp_term_taxonomy ON wp_term_taxonomy.term_taxonomy_id = wp_term_relationships.term_taxonomy_id 
LEFT JOIN wp_terms ON wp_terms.term_id = wp_term_relationships.term_taxonomy_id 
WHERE wp_posts.post_excerpt LIKE '%LO1185LH%' AND wp_term_taxonomy.term_taxonomy_id = 27) 

Или вы можете просто использовать LEFT JOIN, чтобы сделать это;)

UPDATE wp_posts t1 
LEFT JOIN wp_term_relationships ON t1.ID = wp_term_relationships.object_id 
LEFT JOIN wp_term_taxonomy ON wp_term_taxonomy.term_taxonomy_id = wp_term_relationships.term_taxonomy_id 
LEFT JOIN wp_terms ON wp_terms.term_id = wp_term_relationships.term_taxonomy_id 
SET t1.post_content = CONCAT(t1.post_content, 'testext_bla_bla') 
WHERE t1.post_excerpt LIKE '%LO1185LH%' AND wp_term_taxonomy.term_taxonomy_id = 27 
0

Это потому, что обновление предложений нет FROM, потому что вы устанавливаете таблицу для обновления после предложения UPDATE, например:

UPDATE wp_posts 
SET column1=value, column2=value2,... 
WHERE some_column = some_value. 

двигатель базы данных принимает ОТ Предложение, как это внутри UPDATE предложения (потому что это обновление предложение) самый простой способ справиться с это сделать SELECT, первый (с PHP) и использовать этот результат для обработки его обновления, как:

$result = connection()->query("SELECT blah_blah_blah"); 
connection()->close(); 
$rs = mysqli_fetch_array($result); 
//ok you got the result on $rs, if you wanna do an update with this it should 
//be unique result, if you want to do it recursively, simply act over $rs[$i]; 
//then, once or in a loop: 
$sql = "UPDATE wp_posts 
SET column1=value, column2=value2,... 
WHERE some_column = ".$rs['index_that_you_want'].";"; 
connection()->query($sql); 

(помните, взять следующую строку, используя $ rs = mysqli_fetch_array ($ result); в нижней части цикла, если вам нужно запустить его рекурсивно.

Смежные вопросы

 Смежные вопросы