SUBSTRING_INDEX(str,substr,n)
//返回字符substr在str中第n次出现位置之前的字符串;
SUBSTRING_INDEX(username,'-',1)
//返回'-'符号在username第1次出现位置之前的字符串
//username的值是user-1
//返回的结果是user
concat(str1, str2,...) 
//返回结果为连接参数产生的字符串,如果有任何一个参数为null,则返回值为null。
CONCAT( '-',username)
//username的值是user
//返回结果是-user

两者可以结合起来使用 将查询的结果可以拼成自己想要的形式
没有使用拼接+截取函数之前的sql

select batch ,
count(batch),
sub_account max,
MIN(sub_account) min 
from proxy_sub_account
where is_delete = 0
and account_id = '387fb3fe-0f42-455a-bf0c-6d957552f0aa'
and `type`= 1
group by batch ORDER BY any_value(create_time) desc

查询结果如下:
image-1653029415504

项目需要 在max和min的查询结果以指定的形式返给前端则使用了以下函数

select batch ,
count(batch),
CONCAT(SUBSTRING_INDEX(username,'-',1),CONCAT( '-',max(sub_account))) max,
CONCAT(SUBSTRING_INDEX(username,'-',1),CONCAT( '-',MIN(sub_account))) min 
from proxy_sub_account
where is_delete = 0
and account_id = '387fb3fe-0f42-455a-bf0c-6d957552f0aa'
and `type`= 1
group by batch ORDER BY any_value(create_time) desc

查询结果如下:
image-1653029433908

上一篇 下一篇