gpt4 book ai didi

mysql - 如果名称存在则增加名称 mysql

转载 作者:行者123 更新时间:2023-11-29 17:48:05 24 4
gpt4 key购买 nike

我的文档表的结构为

CREATE TABLE document_history 
(
id int auto_increment primary key,
document_id int,
name varchar(100),
modified datetime,
user_id int
);

以及以下值

ID   |  DOCUMENT_ID  |  NAME              |  MODIFIED     |   USER_ID
33 | 81 | document.docx | 2014-03-21 | 1
34 | 82 | doc.docx | 2014-03-21 | 1
35 | 82 | doc(1).docx | 2014-03-21 | 1
36 | 82 | doc(2).docx | 2014-03-21 | 1

因此,当用户上传名为 doc.docx 的文件时,应将其重命名为 doc(3).docx 等等。

我正在尝试编写查询,该查询将为我的文件名提供下一个增量。已经尝试过regxps但仍然无法通过查询实现。另外,我的表可以有数百万个所需的数据,但是有一些过滤条件。

最佳答案

这将找到给定文档 ID 的文档名称,然后执行增量计数器来分配新的文档名称(版本)。我按记录 ID 对结果进行排序,然后仅显示最新(和新的)文档名称。

select t.new_name
from (
select id,
concat(
case when locate('(',name)>0
then left(name,locate('(',name)-1)
else left(name,locate('.',name)-1) end,
'(',
@rownum := @rownum + 1,
')',
right(name,locate('.',reverse(name)))) as new_name
from document_history,
(select @rownum := 0) r
where document_id=81
) t
order by t.id desc
limit 1;

Result:
for document_id=81: document(1).docx
for document_id=82: doc(3).docx

关于mysql - 如果名称存在则增加名称 mysql,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49635426/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com