搜索和替换MySQL:没有被替换

时间:2015-12-15 12:27:35

标签: php mysql sql search replace

我有一张名为v3_product_description的表格。

+------------+-------------+-------------+--------------------------------------------------------------------+----------+--------------------------------------------------------------------+--------------------+------------+--+
| product_id | language_id |    name     |                            description                             |   tag    |                          meta_description                          |   meta_keywords    | meta_title |  |
+------------+-------------+-------------+--------------------------------------------------------------------+----------+--------------------------------------------------------------------+--------------------+------------+--+
|          1 |           2 | Test        | descrition about product. Altijd op voorraad. further description. | tag      | descrition about product. Altijd op voorraad. further description. | keywords           | title      |  |
|          2 |           1 | test        | Beschrijving over het product                                      | tagsss   | metabeschrijving Altijd op voorraad                                | keywords,and so on | title      |  |
|          3 |           2 | Tessdslfkjq | product description                                                | moretags | metadescription Altijd op voorraad                                 | keywords,bullshit  | titlestuff |  |
+------------+-------------+-------------+--------------------------------------------------------------------+----------+--------------------------------------------------------------------+--------------------+------------+--+

正如你们所看到的那样,短语Altijd op voorraad在我的表中很常见(我在真实数据库中有超过8000行)。

翻译为德语的{p> Altijd op voorraadImmer auf Lager,德语的language_id2

我试图在我的表格中搜索并替换该短语,因此我提出了这个问题:

SELECT product_id, language_id, name, description, tag, meta_title, meta_description, meta_keyword,
       REPLACE(meta_description,'Altijd op voorraad','Immer auf Lager')
FROM v3_product_description
WHERE language_id = 2

此查询应将列Altijd op voorraad中的每个meta_description更改为Immer auf Lager。但是一旦执行了,当我查看网店中的项目时,它似乎并没有这样做。

我做错了什么?如何在description列应用相同的搜索/替换?我应该使用第二个查询执行此操作还是将这两个查询合并?

1 个答案:

答案 0 :(得分:2)

您正在尝试更新列值,但正在使用选择查询。

meta_description列中替换字符串的正确方法是

UPDATE v3_product_description

SET meta_description= REPLACE (meta_description,'Altijd op voorraad','Immer auf Lager')

WHERE language_id = 2

希望这会有所帮助。 干杯!