我正在尝试使用单个 SQL SELECT 语句来更新 worpress 数据库中的所有帖子内容。
对于每个单独的帖子,我需要更新在帖子正文中随机定位的特定字符串值。这个值不是唯一的,因此它在内容中出现了多次,但我只需要更新第二次出现。
下面,我有一个单独的帖子的代码,我需要一些帮助来扩展它,以便为数据库中的整个帖子表执行此操作。
SET @pos=2; // this is the occurrence index
SET @str := (SELECT `post_content` FROM `wp_posts` WHERE ID = 1); // this is a specific post identified by the ID
SET @search='1234'; // this is the test string I'm looking for
// 4321 is the replacement value of 1234 search sting above
// post update sql query
UPDATE `wp_posts` SET `post_content` = (SELECT CONCAT(SUBSTRING_INDEX(@str,@search,@pos),'4321',SUBSTRING_INDEX(@str,@search,(@pos-1-(LENGTH(@str)-LENGTH(REPLACE(@str,@search,'')))/LENGTH(@search))))) WHERE ID = 1;
现在,这可以完美地用作对由 ID 标识的单个帖子的查询,但是我不太确定如何将其扩展为应用于 wordpress 数据库中的所有帖子,但使用单个 sql 查询。
任何帮助,将不胜感激。
谢谢你。