【发布时间】:2021-01-01 22:33:33
【问题描述】:
我有以下 MySQL 查询用于从特定位置重命名文件:
SELECT REPLACE('copy "S:' + RIGHT(Path, LEN(Path) - 10) + '.eps" ','/','\'),' "C:\EPS\' + barcode + ' ().eps"'
FROM product
WHERE barcode IN ('1234','6789);
这给了我以下结果,这很好:
copy "S:\C\image1.eps" | "C:\EPS\1234 ().eps"
copy "S:\C\image2.eps" | "C:\EPS\1234 ().eps"
copy "S:\C\image3.eps" | "C:\EPS\1234 ().eps"
copy "S:\C\image4.eps" | "C:\EPS\1234 ().eps"
copy "S:\C\image5.eps" | "C:\EPS\6789 ().eps"
copy "S:\C\image6.eps" | "C:\EPS\6789 ().eps"
如何为每个匹配值添加自定义计数器以获得以下结果?
copy "S:\C\image1.eps" | "C:\EPS\1234 (1).eps"
copy "S:\C\image2.eps" | "C:\EPS\1234 (2).eps"
copy "S:\C\image3.eps" | "C:\EPS\1234 (3).eps"
copy "S:\C\image4.eps" | "C:\EPS\1234 (4).eps"
copy "S:\C\image5.eps" | "C:\EPS\6789 (1).eps"
copy "S:\C\image6.eps" | "C:\EPS\6789 (2).eps"
【问题讨论】:
-
您确定您标记了正确的数据库吗?这段代码看起来不像 MySql。
-
MySQL 不能将字符串加在一起,所以这不是 MySQL,如果是的话,它就坏了。
-
我保证查询运行良好并且是 MySql。我只需要知道如何添加一个计数器,以便每个值都可以有一个唯一的值,并且它必须按数字顺序排列。
-
这绝对不是 MySQL。你需要
CONCAT(...)和 MySQL,因为 MySQL 中的'x' + '.eps'是0,因为这是在做数学运算。这很可能是 Microsoft SQL Server,这是一种完全不同的方言。
标签: sql-server counter increment