我有一张这样的表,叫做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 行(。
翻译成德语的Altijd op voorraad
是Immer auf Lager
,德语的language_id
是2
。
我正在尝试在我的表格中搜索和替换该短语,所以我提出了这个查询:
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
此查询应将列meta_description
中的每个Altijd op voorraad
更改为 Immer auf Lager
。但是一旦执行,当我查看网上商店中的项目时,它似乎不会这样做。
我做错了什么?以及如何在第 description
列应用相同的搜索/替换?我应该使用第二个查询来执行此操作,还是可以将这两个查询组合在一起?
您正在尝试更新列值,但使用的是选择查询。
替换meta_description
列中的字符串的正确方法是
UPDATE v3_product_description
SET meta_description= REPLACE (meta_description,'Altijd op voorraad','Immer auf Lager')
WHERE language_id = 2
希望这有帮助。干杯!