【问题标题】:Maria DB Update and replaceMariadb 更新和替换
【发布时间】:2016-02-22 17:59:56
【问题描述】:

运行时收到错误消息:

UPDATE catalog_product_entity_text
SET value = REPLACE (value, 'xxxxx') 
WHERE value LIKE 'yyyyy'; 

错误:#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ')' at line 1

有什么想法吗?

谢谢

【问题讨论】:

标签: mysql mariadb


【解决方案1】:

我用表达式得到了同样的错误:

UPDATE catalog_product_entity_tex
     SET value = REPLACE (value, 'yyyyy', 'xxxxx')
     WHERE value LIKE '%yyyyy%';

解决方案是使用别名:

UPDATE catalog_product_entity_tex c
     SET c.value = REPLACE (c.value, 'yyyyy', 'xxxxx')
     WHERE c.value LIKE '%yyyyy%';

【讨论】:

    【解决方案2】:

    replace 是错误的。这是正确的方法:

    MariaDB [maison]> select replace('aaaaaa', 'a', 'b');
    +-----------------------------+
    | replace('aaaaaa', 'a', 'b') |
    +-----------------------------+
    | bbbbbb                      |
    +-----------------------------+
    1 row in set (0.01 sec)
    

    您的查询必须类似于:

    UPDATE
       catalog_product_entity_text 
    SET 
       value = REPLACE (value, 'xxxxx', 'zzzzz')
    WHERE
       value LIKE 'yyyyy';
    

    【讨论】:

      【解决方案3】:

      Replace 需要三个参数,而不是两个。大概,你想要:

      UPDATE catalog_product_entity_tex
           SET value = REPLACE (value, 'yyyyy', 'xxxxx')
           WHERE value LIKE '%yyyyy%';
      

      还要注意LIKE 模式中通配符的使用。

      【讨论】:

        猜你喜欢
        • 2012-11-10
        • 2021-09-08
        • 1970-01-01
        • 1970-01-01
        • 2019-06-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多