【问题标题】:Distinguishing Tag and Category names in SQL query replace在 SQL 查询替换中区分标记和类别名称
【发布时间】:2026-01-07 12:05:02
【问题描述】:

我在 SQL 中使用此命令将 TAG 名称替换为另一种语言。标签名称从“pattern”更改为“motif”:

UPDATE wp_terms
SET name =
REPLACE(
name,
'pattern',
'motif')
WHERE term_group LIKE '0'

但我还有一个名为“pattern”的类别名称,我不想将其重命名为“motif”。上面的命令将重命名标签以及类别名称。如何确定查询仅重命名标签,而不是类别?据我了解,标签和类别都位于 wp_terms 中。

在 phpMyadmin wp_terms 中只有以下列:term_id、name、slug、term_group。 但是,我确实看到有一种方法可以实现它。标签的“名称”与“slug”列具有相同的值。

有没有办法将 SQL 查询修改为:

UPDATE wp_terms
    SET name =
    REPLACE(
    name,
    'pattern',
    'motif')
    WHERE 'slug' IS THE SAME AS 'name' COLUMN

我不确定如何正确修改我的 SQL 查询。

【问题讨论】:

    标签: sql wordpress


    【解决方案1】:

    通过添加另一个条件:

    UPDATE
          WP_TERMS
    SET
          NAME      =
              REPLACE ( NAME,
                      'pattern',
                      'motif' )
    WHERE
          TERM_GROUP LIKE '0'
          AND NAME = SLUG;
    

    【讨论】:

    • 在 wp_terms 中没有“分类”列,因此查询不起作用。它只有 term_id、name、slug、term_group。但是,我确实看到有一种方法可以实现它。标签的“名称”与“slug”列具有相同的值。有没有办法将 SQL 查询修改为:REPLACE name WHERE slug IS SAME value as NAME
    • 请发布您的表结构并提及列关系和要更新的值
    • 这里是表结构:i.imgur.com/R01rxqq.png 可以看到,有一个标签叫做pattern,还有一个category叫做pattern。所以只更改标签名称,也许规则可以是只有在 slug 与名称的值相同时才进行更改,然后它会起作用。