mysql中的replace函数出错

时间:2016-06-22 16:42:50

标签: mysql replace

我在mysql中的替换函数有问题,例如

set @str = "Category, CategoryName, CategoryID";
SELECT REPLACE (@str, "Category", "125");

我只会替换第一个单词“Category” 这是结果:

125,125Name, 125ID

如何解决问题

提前谢谢

2 个答案:

答案 0 :(得分:1)

如果您真的想要使用MySQL REPLACE功能,我看到的唯一选择是:

set @str = "Category, CategoryName, CategoryID";
SELECT REPLACE (@str, "Category,", "125,");

答案 1 :(得分:0)

如果您只想替换第一个字符(如果您定义的第一个字符必须等于字符串"类别" ),您可以尝试:

SELECT 
  fieldname,
  REPLACE(fieldname, 'Category', '125'),
  LEFT(fieldname, 8),
  RIGHT(fieldname, (LENGTH(fieldname)-8)),
  CONCAT('125', RIGHT(fieldname, (LENGTH(fieldname)-8)))
FROM tablename
WHERE LOWER(LEFT(fieldname, 8)) = 'category';

您的结果如下:

CategoryNameCategorySomethingElse | 125Name125SomethingElse | 
Category | NameCategorySomethingElse | 125NameCategorySomethingElse

现在,您可以准备更新声明:

UPDATE tablename 
SET fieldname = CONCAT('123', RIGHT(fieldname, (LENGTH(fieldname)-8))) 
WHERE LOWER(LEFT(fieldname, 8)) = 'category';