-- Mysql增加转义字符 ESCAPE
select t.message FROM session_detail t where t.message like '%/%%' ESCAPE '/'
每天学习一点 每天进步一点
字符串加入单引号的方法:=CONCATENATE("'",C6)&"'"
MySQL去除空格:update business set processor = replace(processor,' ','') ;
MongoDB分组查询:
db.getCollection('app_kefu_im_message').aggregate( [
{ $match : { dateTime : { "$gte":"2022-03-01 00:00:00","$lt":"2022-04-01 00:00:00" } } },
{ $group: {_id:"$sid", count: { $sum: 1 } } }
] );
MongoDB中条件操作符有:
• (>) 大于 - $gt
• (<) 小于 - $lt
• (>=) 大于等于 - $gte
• (<=) 小于等于 - $lte
查进程:netstat -aptn |grep 8088
杀进程:kill -9 2900
当期日期减去30天大于工单创建时间 :
WHERE DATE_SUB(CURDATE(), INTERVAL 30 DAY) >= date(t.ordercreatedon)
一、date_format () 、date_sub()、YEERWEEK()、WEEKDAY()
1) “date_format()”:格式化日期格式,“date_format(时间戳,时间格式)”
2) “date_sub()”:从日期减去指定的时间间隔;函数形式DATE_SUB(date,INTERVAL expr type),date 参数是合法的日期表达式。expr 参数是您希望添加的时间间隔,时间间隔参数非常全面,常用的为 年月日时分秒;
举例如减天数如“date_sub(时间,INTERVAL 1 DAY)”,减月份“date_sub(时间,INTERVAL 1 MONTH)”
3) YEERWEEK()函数返回指定的日期是哪一年的哪个星期,函数形式为 YEARWEEK(date[,mode]) ,其中date的格式一般为‘年-月-日’,mode为1代表一个星期从星期一开始;
4)WEEKDAY函数接受1个参数,即DATE或DATETIME值,函数形式为WEEKDAY(date);返回一个整数,范围从0到6,表示星期一到星期日,即星期一为0,星期二为1,星期日为6;
--
STR_TO_DATE()函数
STR_TO_DATE(str,format)函数是将时间格式的字符串(str),按照所提供的显示格式(format)转换为DATETIME类型的值
date_format( t.createdate, '%Y-%m' ) = date_format( STR_TO_DATE( '2022-04-13', '%Y-%m-%d' ), '%Y-%m' )
--
date和datetime的区别
date是短日期,只包括年月日,默认格式为:%Y-%m-%d.
datetime是长日期,包括年月日分秒,默认格式为:%Y-%m-%d %h:%i:%s.
now()函数
作用:可以获得系统当前的时间,包括时分秒,是datetime类型的.
Mysql语句字符串截取:substring_index(str,delim,count)
str:要处理的字符串
delm:分隔符
count:计数
如果count是正数,那么就是从左往右数,第N个分隔符的左边的全部内容
str=www.baidu.com
(1) substring_index(str,'.',1)
结果是:www
(2) substring_index(str,'.',2)
结果是:www.baidu
如果是负数,那么就是从右边开始数,第N个分隔符右边的所有内容,
substring_index(str,'.',-2)
结果为:baidu.com
取中间的某个值
从右数第二个分隔符的右边全部,再从左数的第一个分隔符的左边:
substring_index(substring_index(str,'.',-2),'.',1);
结果为:baidu
示例:
SUBSTRING_INDEX(
SUBSTRING_INDEX(
SUBSTRING_INDEX(
SUBSTRING_INDEX(
SUBSTRING_INDEX(
SUBSTRING_INDEX(
SUBSTRING_INDEX(
SUBSTRING_INDEX(
SUBSTRING_INDEX(
SUBSTRING_INDEX(
SUBSTRING_INDEX(
SUBSTRING_INDEX( t.companyid, '0',1),
'1',1),
'2',1),
'3',1),
'4',1),
'5',1),
'6',1),
'7',1),
'8',1),
'9',1),
'_',1),
'-',-1) newcompanyid ,
转译字符 ESCAPE
select t.message FROM session_detail t where t.message like '%/%%' ESCAPE '/'
内置函数
-- 用LOCATE关键字进行模糊匹配,等同于:"like '%网%'"
select t.message FROM session_detail t where LOCATE('网',t.message ) > 5 LOCATE(substr,str)
-- 用INSTR关键字进行模糊匹配,功能跟like一样 ,等同于:"like '%网%'"
select t.message FROM session_detail t where INSTR(t.message,'网') > 0 INSTR(str,substr)
-- 用POSITION关键字进行模糊匹配,等同于:"like '%网%'"
select t.message FROM session_detail t where POSITION( '网' IN t.message) > 0 POSITION(substr IN str)
MySQL基于regexp、rlike的正则匹配查询
MySQL中的regexp和rlike关键字属于同义词,功能相同
-- (^a) 匹配字符串的开始位置,如“^a”表示以字母a开头的字符;
select t.message FROM session_detail t where t.message REGEXP '^1' ;
-- ($) 匹配字符串的结束位置,如“X^”表示以字母X结尾的字符串
select t.message FROM session_detail t where t.message REGEXP '支付$' ;
-- (.) 这个字符就是英文下的点,它匹配任何一个字符,包括回车、换行等。
select t.message FROM session_detail t where t.message REGEXP '支付.' ;
-- (*) 星号匹配0个或多个字符,在它之前必须有内容。如:select * from table where name regexp 'ba*'(可以命中“baaa”)批量发
select t.message FROM session_detail t where t.message REGEXP '批量发放*' ;
-- (+) 加号匹配1个或多个字符,在它之前也必须有内容。加号跟星号的用法类似,只是星号允许出现0次,加号则必须至少出现一次。
select t.message FROM session_detail t where t.message REGEXP '手机+' ;
-- (?) 问号匹配0次或1次。
select t.message FROM session_detail t where t.message REGEXP '手机?' ;