网页设计个人网站下载,浙江省建设业协会网站,写网站软件,浦东手机网站建设字符串函数
函数描述举例left(str, length)从左开始截取字符串#xff0c;截取length个left(2023-08-04, 7) 2023-08right(str, length)从右开始截取字符串#xff0c;截取length个 right(2023-08-04, 5) 08-04 substring(str, pos, length) substring#xff08;被截取字…字符串函数
函数描述举例left(str, length)从左开始截取字符串截取length个left(2023-08-04, 7) 2023-08right(str, length)从右开始截取字符串截取length个 right(2023-08-04, 5) 08-04 substring(str, pos, length) substring被截取字段从第几位开始截取截取长度 SELECT substring(2023-08-01, 1, 7)2023-08 substring_index(str,delim,count)substring_index被截取字段关键字关键字出现的次数select substring_index(河北省-石家庄市-长安区, -, 2)河北省-石家庄市IFNULL(expr1,expr2)当expr1为空时返回expr2不为空时返回expr1IFNULL(NULL, 0)0find_in_set(str1,str2)返回str2中str1所在的位置索引如果找到了则返回true1否则返回false0其中str2必须以半角符号的逗号【,】分割开SELECT FIND_IN_SET(水泥, 水泥,矿粉,混凝土)1locate(substr,str)返回str中substr所在的位置索引如果找到了则返回一个大于0的数否则返回0。SELECT locate(水泥, 水泥矿粉混凝土)1POSITION(substr IN str)返回子串 substr 在字符串 str 中的第 pos 位置后第一次出现的位置。如果子串 substr 在 str 中不存在返回值为 0。SELECT POSITION(水泥 IN 水泥矿粉混凝土)1STR_TO_DATE(str,format)函数是将时间格式的字符串str按照所提供的显示格式format转换为DATETIME类型的值。STR_TO_DATE(2023-08-04, %Y-%m-%d %H:%i:%s)2023-08-04 00:00:00 中是否包含某字符。find_in_set可以用于指定内容的排序。
数字函数
函数描述举例FORMAT(N,D,locale)N是要格式化的数字。D是要舍入的小数位数。locale是一个可选参数用于确定千个分隔符和分隔符之间的分组。需要注意的是返回的结果为string类型。FORMAT(1000, 0)1,000ROUND(x,n) 数据四舍五入ROUND(3.1415927, 4)3.1416TRUNCATE(x,n)返回小数点后n位的数据TRUNCATE(3.1415927, 4)3.1415LPAD(column, len, padstr)字符串位数不够补0前面补0LPAD(1, 2, 0)01RPAD(column, len, padstr)字符串位数不够补0后面补0RPAD(1, 2, 0)10 日期函数
函数说明举例DATE_FORMAT(date,format)函数则是把数据库的日期转换为对应的字符串格式DATE_FORMAT(CURRENT_TIME(), %Y-%m-%d %H:%i:%s)2023-8-04 14:00:41DATE_SUB(date,INTERVAL expr type)函数从日期减去指定的时间间隔DATE_SUB(curdate(), INTERVAL 7 DAY)7日前日期DATEDIFF(expr1,expr2)获取两日期相差天数DATEDIFF(2023-08-04, 2023-08-01)3curdate()当前日期NOW()当前时间YEAR(date)获取日期年份YEAR(curdate())当前日期所处年MONTH(date)获取日期月份MONTH(curdate())当前日期所处月 其它
GROUP_CONCAT(colum_name)
与group by搭配使用分组时结果多列转一行逗号分隔内容
(i:i1)
查询结果添加序号如 select id,name,(i:i1) orderNo from table,(select i:0) b //生成orderNo序号 WITH
临时表用于保存一些临时数据提取子查询简化代码 with t1 as ( select * from table1 ), t2 as ( select * from table2 ) select * from t1 union all select * from t2 窗口函数over(partition by XXX order by XXX )
partition by根据字段来分组类似于group by
order by分组后根据某个字段进行排序 // 根据类别分组按照销量排序添加排序序号 ROW_NUMBER() OVER (partition by ctype ORDER BY sum(iQuantity) DESC) AS id 加序函数
ROW_NUMBER()排序后顺序为1,2,3
RANK()排序后顺序为1,1,3
DENSE_RANK()排序后顺序为1,1,2
NTILE()函数将排序分区中的行划分为特定数量的组从每个组分配一个从一开始的桶号。对于每一行NTILE()函数返回一个桶号表示行所属的组。
如取销量排名前20%的客户 with t1 as ( select ntile(5) over(partition by t3.ctype order by t3.id) nt -- 将客户按照数量分成5组 from table ) select * from t1 where nt1 // 第一组为前20%的客户 特定顺序排序
按照一组、二组、三组、四组、五组排序 ...... order by find_in_set(column_name, 一组,二组,三组,四组,五组) 不确定排序中的内容有哪些想要将排序后的第一个放到最后一个如类别编号已排序现将排在第一位的010101产品类别排在最后 ...... order by field(column_name, 010101) 注order by field(column_name, str1, str2, str3) 与str1、str2、str3比较进行排序
Mybatis XML转义字符
lt; 小于号
gt; 大于号
amp; 和
apos; ’ 单引号
quot; “ 双引号