gpt4 book ai didi

mysql - 在Mysql中查找字符串值中的最大值

转载 作者:行者123 更新时间:2023-11-29 22:56:23 26 4
gpt4 key购买 nike

我有一个 mysql 表,其中包含 id、名称、文件路径、created_by、created_on 等字段。

在表中,我必须按 id 找到 max(file_path) 组。

例如,我的 file_path 为

TTE_RODRIGUEZ_100001_246_6.pdf,
TTE_RODRIGUEZ_100001_246_7.pdf,
TTE_RODRIGUEZ_100001_246_8.pdf,
TTE_RODRIGUEZ_100001_246_9.pdf,
TTE_RODRIGUEZ_100001_246_10.pdf

id 为 1。

如果我运行查询

select max(file_path) from table where id='1'

它将值显示为 TTE_RODRIGUEZ_100001_246_9.pdf 而不是 TTE_RODRIGUEZ_100001_246_10.pdf,因为它将其与字符串进行比较。

我已经尝试过

SELECT CAST(SUBSTRING_INDEX(file_path, '_', -3)  AS SIGNED) as num FROM `table`

但是结果显示为0。

请大家帮帮我。

最佳答案

假设给定 ID 的文件路径的第一部分是相同的,您希望以正确的顺序获取内容。

select file_path
from table
where id = '1'
order by (substring_index(file_path, '_', -1) + 0) desc
limit 1;

请注意,您的 substring_index() 表达式使用 -3,而此表达式使用 -1。在第一个示例中,substring_index() 将返回“1.pdf”。 + 0 进行静默转换,因此它将转换前导数字并且不会返回错误 - 在本例中给出“1”。

关于mysql - 在Mysql中查找字符串值中的最大值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28694735/

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