2015-06-05 2 views
1

Условия работы Это WordPress database.It имеет две таблицы wp_terms и wp_term_taxonomyMYSQL, обновить только определенные строки из таблицы, которые удовлетворяют определенным

wp_terms has columns slug, name, term_id 
wp_term_taxonomy has columns term_id, taxonomy, term_taxonomy_id. 

Сейчас я стараюсь

UPDATE wp_terms 
SET slug = CONCAT(slug,'-quotes') 
FROM wp_terms, wp_term_taxonomy 
WHERE wp_term_taxonomy.taxonomy = "post_tag" AND wp_term_taxonomy.term_id = wp_terms.term_id 

Я пытаюсь Concat слово в строках столбца «slug» таблицы «wp_terms», которые удовлетворяют определенным условиям.

но MySQL дает

# 1064 - У Вас есть ошибка в вашем SQL синтаксиса; проверьте руководство, которое соответствует версии сервера MySQL для корректного синтаксиса использовать вблизи «FROM wp_terms, wp_term_taxonomy WHERE wp_term_taxonomy.taxonomy = " post_tag "» в строке 3

ответ

0

FROM не принадлежит в UPDATE заявление. Если вы хотите объединить таблицы в UPDATE, вы можете использовать JOIN.

UPDATE wp_terms 
JOIN wp_term_taxonomy ON wp_term_taxonomy.term_id = wp_terms.term_id 
SET slug = CONCAT(slug,'-quotes') 
WHERE wp_term_taxonomy.taxonomy = "post_tag" 

Вы также можете сделать это:

UPDATE wp_terms, wp_term_taxonomy 
SET slug = CONCAT(slug,'-quotes') 
WHERE wp_term_taxonomy.taxonomy = "post_tag" AND wp_term_taxonomy.term_id = wp_terms.term_id 
+0

Вторая часть того, что я все тоже не хватало. Обязательно ли использовать обе таблицы после UPDATE, если условия WHERE связаны с обоими –

+0

@SanthoshYedidi: - Да, это так! –

+0

Хорошо. вот что я пропал без вести. И не мог найти нигде в сети. –

0

Попробуйте это:

UPDATE wp_terms 
INNER JOIN wp_term_taxonomy ON wp_term_taxonomy.term_id = wp_terms.term_id 
SET slug = CONCAT(slug,'-quotes') 
WHERE wp_term_taxonomy.taxonomy = "post_tag" 
Смежные вопросы