使用PHP / MySQL替换表中的多个字符串

时间:2014-04-13 11:32:25

标签: php mysql loops

我有一个名为Products的表格,其中包含产品标题。其中一些标题有我想要替换的单词。该表包含超过6,000条记录。文本字符串位于Title

ID | Title | Description | Price

我有另一个名为ReplaceText的表,其中包含我要搜索的字符串列表和新文本字符串。 (例如小|小)这目前有102条记录。

ID | OldString | NewString

我想创建一个PHP / MySQL脚本来搜索Title表中的Products字段,以查找来自'OldString field in the ReplaceText`表的单词。

我尝试了各种方法,但都无法破解代码。请帮助:)

提前谢谢。

1 个答案:

答案 0 :(得分:0)

我建议使用以下方法,仅使用SQL查询。

首先,创建一个临时表ProductsTMP,其中只包含带有Products新行的Title行。

CREATE TEMPORARY TABLE ProductsTMP AS
SELECT p.ID, r.NewString AS Title, p.Description, p.Price
FROM Products p INNER JOIN ReplaceText r ON p.Title = r.OldString;

然后,从原始Products表中删除旧行:

DELETE FROM Products
WHERE ID IN (SELECT ID FROM ProductsTMP);

最后,将ProductsTMP中更新的行添加到原始表Products,然后删除临时表:

INSERT INTO Products (ID, Title, Description, Price)
SELECT ID, Title, Description, Price FROM ProductsTMP;    
DROP TABLE ProductsTMP;