我在mysql中的替换函数有问题,例如
set @str = "Category, CategoryName, CategoryID";
SELECT REPLACE (@str, "Category", "125");
我只会替换第一个单词“Category” 这是结果:
125,125Name, 125ID
如何解决问题
提前谢谢
答案 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';