工作小技巧-随记

-- 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类型的.

工作小技巧-随记_第1张图片

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 '手机?' ;

你可能感兴趣的:(原创,mongodb,数据库,mysql)