常用mysql语句

本文介绍了SQL中常用的函数和操作,如GROUP_CONCAT用于聚合,RIGHT和SUBSTR进行字符串截取,INSERT实现替换,以及CHAR_LENGTH和LENGTH计算字符串长度。还展示了如何找最大值、字符串拼接以及统计不同状态值的方法。这些技巧在日常开发中非常实用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本文仅仅记录,日常开发中常用sql。

GROUP_CONCAT 函数

期望
在这里插入图片描述

select product_attribute.name as name, GROUP_CONCAT(product_attribute_value.value) as value
from product_attribute,
     product_attribute_value
where product_attribute.id = product_attribute_value.product_attribute_id
  and product_attribute.product_id = '1414481474832461824'
group by product_attribute.name;

要点:inner join 以及 GROUP_CONCAT函数使用

找最大值

# 案例 sub_rule生成规则是:sub前缀+六位数字(取最大+1),例子:sub000011 下一次生成是sub000012
SELECT max(RIGHT(sub_rule,CHAR_LENGTH(sub_rule) - 3)) +0 FROM user;

字符串操作函数


## 字符串拼接相关
# concat函数。注意:任意连接的字符串为NULL
select concat(id,name) from user where id ='14249292325131';
# 入参,分隔符,以及多个变量。注意:分隔符为null时,则返回的结果也为NULL
select concat_ws('_',id,name,email) from user where id ='';
# 全参数是这样。默认要是不分组,所有的结果就是一组。然后就行拼接。
# GROUP_CONCAT( [DISTINCT] expr [,expr ...] [ORDER BY {unsigned_integer | col_name | expr} [ASC | DESC] [,col_name ...]] [SEPARATOR str_val] )
select id,group_concat(name,id SEPARATOR '**' ) from user group by name;


## 字符串截取
# SUBStr(SUbString|Mid) 四种入参方式.三种函数目的一样,真不知道,为啥冗余那么多
# 和 SUBSTR(sub_rule FROM 4) 一样
select SUBSTR(sub_rule,4) from user where id=2;
# 和subStr(sub_rule FROM 2 FOR 3)
select subStr(sub_rule,2,3) from user where id=3;
# [4,字符串最大] 例子 sub000012 结果:000012
select SUBSTR(sub_rule FROM 4) from user where id=2;
# 从第几位开始,要几个 例子 sub000012 结果:ub0
select subStr(sub_rule FROM 2 FOR 3) from user where id=3;
# 从右边开始right(字段,要几位)
select right(sub_rule,4) from user where id=2;
select mid(sub_rule,4) from user where id=2;


# 计算字符串长度
select char_length(sub_rule) from user where id=2;
select length(sub_rule) from user where id=2;

# 替换
# 参数:source,从几个开始pos,替换几个len,newStr。1-若pos不在字符串长度范围内,返回原字符串,2-若len不在范围内,则从pos开始替换,替换内容为newStr,3-若任意参数为null,返null
select insert(sub_rule,333,2,'wwwwwwwww')from user where id=3;

# 字符串大小写转换
select lower(sub_rule)from user where id=3;

# 删除空格 trim,Ltrim,Rtrim
select trim(sub_rule)from user where id=3;
# 去除指定字符
# 全参 [Both|Leading|trailing] [remStr] From var 。例子:
select trim(BOTH 'x' from sub_rule)from user where id=3;

select charset(sub_rule) from user where id=2;

统计各个状态值

  SELECT sum(case when meter_category = 0 then 1 else 0 end) AS masterNum,
                sum(case when meter_category = 1 then 1 else 0 end) AS salveNum
                from table_name
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值