Mysql

PolyLang WP 更新以將一個字元串替換為另一個

  • March 22, 2021

我必須在表 wp_post ( Wordpress )的 post_content 列中將一個字元串替換為另一個字元串。我的查詢只有在我使用 SELECT 時才有效,但是當我想將 UPDATE 命令與 REPLACE 一起使用時,我有錯誤。我的查詢:

UPDATE wp_posts SET post_content = REPLACE(post_content, 'str1', 'str2') FROM wp_posts WHERE ID IN (
SELECT ID
FROM wp_posts 
WHERE ID IN (SELECT SUBSTRING_INDEX(SUBSTRING_INDEX(description, '"ar";i:', -1), ';',1) FROM wp_term_taxonomy WHERE taxonomy = 'post_translations'))

mysql 說道:

#1064 - 您的 SQL 語法有錯誤;檢查與您的 MariaDB 伺服器版本相對應的手冊,以在第 1 行的“FROM wp_posts WHERE ID IN(SELECT ID FROM wp_posts WHERE ID IN(SELECT S…”)附近使用正確的語法

基本上,您獲得正確 ID 的構造是雙倍的,UPDAT 沒有 from 子句

如果您獲得所有 ID,則應首先在 SELECT 中嘗試 WHERE 子句

UPDATE wp_posts 
SET post_content = REPLACE(post_content, 'str1', 'str2')  
WHERE ID IN (SELECT SUBSTRING_INDEX(SUBSTRING_INDEX(description, '"ar";i:', -1), ';',1) FROM wp_term_taxonomy WHERE taxonomy = 'post_translations') 

好的,我已經做到了。現在一切都很好。這是一個有效的查詢:

UPDATE wp_postsSET post_content=REPLACE( post_content, ‘str1’, ‘str2’) WHERE ID IN( SELECT SUBSTRING_INDEX(SUBSTRING_INDEX(description, ‘“ar”;i:’, -1), ‘;’,1) AS IDList FROM wp_term_taxonomyWHERE taxonomy= ’ post_translations’有 IDList 正則表達式’^-?

$$ 0-9 $$+$’)

引用自:https://dba.stackexchange.com/questions/287389