gpt4 book ai didi

mysql - SQL/Sybase 查询按列值的子字符串分组

转载 作者:行者123 更新时间:2023-11-29 08:15:43 26 4
gpt4 key购买 nike

我正在使用以下结果进行简单的选择查询 -

select source_uri from image

--

source_uri

"image/30022/A.jpg"
"image/30022/B.jpg"
"image/30022/C.jpg"
"image/30022/D.jpg"
"image/30023/A.jpg"
"image/30023/B.jpg"
"image/30023/C.jpg"
"image/30023/D.jpg"
"image/30024/A.jpg"
"image/30024/B.jpg"
"image/30024/C.jpg"
"image/30024/D.jpg"

我想要这样的结果 -

source_uri

"image/30022/A.jpg"
"image/30023/B.jpg"
"image/30024/C.jpg"

我尝试使用 group by 子句...但它不会分组,因为值不同。

--

我能够在 mySQL 中使用 SUBSTRING_INDEX 函数。

正在 Sybase 中寻找确切的替代方案。

最佳答案

如果总是有最后 6 个字符,即 D.jpg" 字符,您需要应用分组依据,那么您可以使用 RIGHT(col,len),Right 返回字符串 str 中最右边的 len 个字符,如果任何参数为 NULL,则为 NULL

select source_uri 
from image
GROUP BY RIGHT(source_uri ,6)

RIGHT(str,len)

您需要以其他方式获取最后一个之后的部分/因此使用SUBSTRING_INDEX

select source_uri 
from image
GROUP BY SUBSTRING_INDEX(source_uri ,'/',-1)

SUBSTRING_INDEX(str,delim,count)

阅读评论后编辑

SUBSTRING_INDEX(source_uri ,'/',-1) /* will give you  A.jpg*/

现在要获得剩余部分,您可以这样做

SUBSTRING_INDEX(source_uri ,SUBSTRING_INDEX(source_uri ,'/',-1) ,1) /* will give you image/30022/ */

关于mysql - SQL/Sybase 查询按列值的子字符串分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20643040/

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