1.字符函数
2.数字函数
3.日期
4.条件判断CASE
1.字符函数
1.1 LOWER 大写转小写
SELECT activity_code,LOWER(activity_code) lowerst FROM jsnh_activity
1.2 UPPER 小写转大写
SELECT activity_code,UPPER(activity_code) upperst FROM jsnh_activity
1.3 CONCAT 拼接字符串
SELECT activity_code,activity_id,CONCAT(activity_code,'-',activity_id ) concatst FROM jsnh_activity
1.4 SUBSTR
SUBSTR (str, pos)
SUBSTR (str, pos, len)
str为列名/字符串;
pos为起始位置;mysql中的起始位置pos是从1开始的;如果为正数,就表示从正数的位置往下截取字符串(起始坐标从1开始),反之如果起始位置pos为负数,那么 表示就从倒数第几个开始截取;
len为截取字符个数/长度
1)从第11个字符开始截取到末尾
SELECT activity_code ,SUBSTR(activity_code, 11 ) sunstrst FROM jsnh_activity
2)从倒数第6个字符开始截取到末尾
SELECT activity_code ,SUBSTR(activity_code, -6 ) sunstrst FROM jsnh_activity
3)从第11个字符开始截取,截取10个字符
SELECT activity_code ,SUBSTR(activity_code, 11,10 ) sunstrst FROM jsnh_activity
4)从倒数第6个字符开始截取,截取3个字符
SELECT activity_code ,SUBSTR(activity_code, -6,3 ) sunstrst FROM jsnh_activity
1.5 LENGTH 获取字符串长度
SELECT activity_code ,LENGTH(activity_code) le FROM jsnh_activity
1.6 INSTR 查找
在字符串中查找某字符串,返回子字符串在字符串中首次出现的位置;如果没有找到,则返回0
SELECT activity_code ,INSTR(activity_code,'XX') le FROM jsnh_activity
1.7LPAD和RPAD 填充
LPAD(sourceStr, length, newStr),将字符串newStr填补到sourceStr左边,直到sourceStr长度达到length
RPAD(sourceStr, length, newStr),将字符串newStr填补到sourceStr右边,直到sourceStr长度达到length
SELECT activity_id ,LPAD(activity_id,10,'LEFT') le, RPAD(activity_id,10,'RIGHT') ri FROM jsnh_activity
1.8 TRIM和LTRIM和RTRIM 去除空格
TRIM() #删除字符串前后空格
RTRIM() #删除字符串结尾空格
LTRIM() #删除字符串起始空格
字符串' abc def '前后中间都有空格,使用三个函数去除空格
SELECT TRIM(' abc def ') tr,LTRIM(' abc def ') ltr,RTRIM(' abc def ') rlt
TRIM()左右两侧的空格都去掉了,中间的空格还在
LRIM()左侧的空格都去掉了,中间和右侧的空格还在
RRIM()由侧的空格都去掉了,中间和左侧的空格还在
1.9 REPLACE 替换
使用字符Y替换字符XX
SELECT activity_code,REPLACE(activity_code,'XX','Y') FROM jsnh_activity
2.数字函数
2.1 ROUND 四舍五入
SELECT ROUND(3.65)
2.2 TRUNCATE 保留几位小数
SELECT TRUNCATE(123.456,2)
2.3 MOD 取余
SELECT MOD(100,3)
3.日期函数
3.1 now 当前日期
SELECT NOW()
3.2 str_to_date 字符串转换为日期
SELECT STR_TO_DATE('2001.12.01','%Y.%m.%d') da
3.3 date_format 日期转换为指定格式字符串
SELECT DATE_FORMAT(NOW(),'%Y-%m-%d %H:%i:%s') dast
3.4格式化表达式
%a 缩写星期名 %b 缩写月名 %c 月,数值 %D 带有英文前缀的月中的天 %d 月的天,数值(00-31) %e 月的天,数值(0-31) %f 微秒 %H 小时 (00-23) %h 小时 (01-12) %I 小时 (01-12) %i 分钟,数值(00-59) %j 年的天 (001-366) %k 小时 (0-23) %l 小时 (1-12) %M 月名 %m 月,数值(00-12) %p AM 或 PM %r 时间,12-小时(hh:mm:ss AM 或 PM) %S 秒(00-59) %s 秒(00-59) %T 时间, 24-小时 (hh:mm:ss) %U 周 (00-53) 星期日是一周的第一天 %u 周 (00-53) 星期一是一周的第一天 %V 周 (01-53) 星期日是一周的第一天,与 %X 使用 %v 周 (01-53) 星期一是一周的第一天,与 %x 使用 %W 星期名 %w 周的天 (0=星期日, 6=星期六) %X 年,其中的星期日是周的第一天,4 位,与 %V 使用 %x 年,其中的星期一是周的第一天,4 位,与 %v 使用 %Y 年,4 位 %y 年,2 位
4.条件判断
4.1.CASE
1)简单函数CASE [col_name] WHEN [value1] THEN [result1]…ELSE [default] END
SELECT activity_id, CASE(activity_id) WHEN 2 THEN activity_id * -1 WHEN 6 THEN activity_id * -2 ELSE activity_id END ca FROM jsnh_activity
2)搜索函数CASE WHEN [expr] THEN [result1]…ELSE [default] END,搜索函数可以写判断,并且搜索函数只会返回第一个符合条件的值,其他
case
被忽略
SELECT activity_id, CASE(activity_id) WHEN activity_id < 6 THEN activity_id * -1 ELSE activity_id END ca FROM jsnh_activity
符合<6的应该有多条数据,但是只有第一条数据乘以-1了,其它的都忽略了
4.2 if()函数
IF(表达式1,值1,值2)
如果表达式1成立,返回表达式2的值,否则返回表达式3的值
SELECT activity_id,IF(MOD(activity_id,2)=0,'偶数','奇数') id FROM jsnh_activity
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?