Mysql
PolyLang WP 更新以將一個字元串替換為另一個
我必須在表 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_posts
SETpost_content
=REPLACE(post_content
, ‘str1’, ‘str2’) WHERE ID IN( SELECT SUBSTRING_INDEX(SUBSTRING_INDEX(description, ‘“ar”;i:’, -1), ‘;’,1) AS IDList FROMwp_term_taxonomy
WHEREtaxonomy
= ’ post_translations’有 IDList 正則表達式’^-?$$ 0-9 $$+$’)