最近在工作中遇到一个问题:我们系统的一些逻辑处理是用存储过程实现的,但是有一天客服反馈说订单下单失败,查了下单牵扯到的产品基础资源,没有问题。下单的存储过程中有这样两句代码:1declare _err intdefault0;
2DECLARECONTINUE HANDLER FOR SQLEXCEPTION,SQLWARNING,NOT FOUND set _err=1;
3DECLARECONTINUE HANDLER FOR SQLSTATE ‘23000‘set _err=2; 执行存储过程后 变量_err会返回1,只能调试存储过程找问题了。调试到下...
1、left(name,4)截取左边的4个字符 列:SELECT LEFT(201809,4) 年结果:20182、right(name,2)截取右边的2个字符SELECT RIGHT(201809,2) 月份结果:093、SUBSTRING(name,5,3) 截取name这个字段 从第五个字符开始 只截取之后的3个字符SELECT SUBSTRING(‘成都融资事业部‘,5,3)结果:事业部4、SUBSTRING(name,3) 截取name这个字段 从第三个字符开始,之后的所有个字符SELECT SUBSTRING(‘成都融资事业部‘,3)结果:融资事业部5、...
***explain ****分析******* 1观察,至少跑一天,看看生产的慢SQL情况 2开启慢查询日志,设置阙值,比如超过5秒钟的就是慢SQL,并将它抓取出来 3explain+慢SQL分析 4show profile 5运维经理 or DBA,进行SQL数据库服务器的参数调优 *****总结***** 1慢查询的开启并捕获 2explain+慢SQL分析 3show profile查询SQL在Mysql服务器里面的执行细节和生命周期情况 4SQL数据库服务器的参数调优 *********...
如 现有字符串 "[]aseabcd[12345]ddxabcdsx[]",要截取"abcd[" 和 "abcd["之后的第一个 "]" 之间的内容 "12345",当然当中的内容长度不是固定的,可以是"123456" 或者其他字符串。 他问我的时候,我第一反应就是想的indexOf,后来查了下 发现mysql中没有indexOf 而是 locate。 经过半个多小时的尝试,最好帮他实现了这个效果。 复制代码 代码如下:CREATE PROCEDURE sp_str ( IN p_str VARCHAR(50), /*原始字符串*/ IN p_begin_str V...
用 DATE_FORMAT 来格式化日期字段
SELECT DATE_FORMAT(crt_time,‘%Y-%m-%d‘) FROM ad_n_advertise_t原文:http://www.jb51.net/article/53293.htm
SELECT m.content,o.order_price,o.id,m.id
FROM scp_home_msg m
INNERJOIN scp_order o ON m.link_id=o.id把content 里面的金额换成order_price1、获取金额SELECT substring_index(content,‘实付¥‘,-1) FROM scp_home_msg WHERE id=1096;
-- 1000.00"}2、获取最后两个字符SELECTright(substring_index(content,‘实付¥‘,-1),2) FROM scp_home_msg WHERE id=1096;
-- "}3、获取完整金额SELECT substring_index(substrin...
MySQL字符串的拼接、截取、替换、查找位置。常用的字符串函数:函数 说明CONCAT(s1,s2,...) 返回连接参数产生的字符串,一个或多个待拼接的内容,任意一个为NULL则返回值为NULL。CONCAT_WS(x,s1,s2,...) 返回多个字符串拼接之后的字符串,每个字符串之间有一个x。SUBSTRING(s,n,len)、MID(s,n,len) 两个函数作用相同,从字符串s中返回一个第n个字符开始、长度为len的字符串。LEFT(s,n)、RIGHT(s,n) 前者返回字...
在进行操作系统和数据库系统管理时,经常会遇到在日志文件中查找某个字符,或者按照时间截取某个时间段的日志进行分析。
今天早上就遇到一个MySQL数据库上的问题,mysql数据库在0-3点的时候,数据库会话连接,tps,cpu和iowait等都比平时大了许多。
为了定位这个时间段内,到底发生了那些慢查询,消耗了资源,就需要在slow.log慢查询日志进行查询,截取和分析。在处理过程中,对几种常用的日志截取方法进行了汇总和测试:截取日志段...
全局查询日志(测试环境化使用)
配置启用
#my.cnf中
#开启
general_log=1
#记录日志文件的路径
general_log_file=/path/logfile
#输出格式
log_output=FILE编码启用
set global general_log = 1;set global log_output=‘TABLE‘#此后,编写的SQL语句,将会记录到mysql库里的general_log表里,可以用下面的命令查看select * from mysql.general_log;永远不要再生产环境中开启这个功能[mysql]查询截取分析-全局查询日志标签:文件的 ...
执行mysqldumpslow –h可以查看帮助信息。主要介绍两个参数-s和-t -s 这个是排序参数,可选的有: al: 平均锁定时间 ar: 平均返回记录数 at: 平均查询时间 c: 计数 l: 锁定时间r: 返回记录t: 查询时间-t n 显示头n条记录###########################通常需要查看某个时间段的日志信息:
awk ‘/# Time: 2017-10-30T20/,/# Time: 2017-10-31T03/‘ query-slow.log_42_20171031 > /tmp/a_log
awk ‘/# Time: ‘110...
bl_time是字段(如2014-05-09 11:33:20) $Year是表单提交上来的值(如2014) .....where YEAR('ruku.bl_time')=" . $Year; 意思就是截取bl_time字段的年份等于表单提交上来的$Year的值 where 后面的语句怎么写才正确? 回复讨论(解决方案) $sql = "select * from table where year(bl_time) = $Year"; 截取年份的对了 那截取月和日分别是用什么? month(bl_time)和day(bl_time)吗?试了,好像不行 用mo...
mysql 截取字符串mysql 截取字符串截取4位字符 utf-8编码 现在截取字符串效果都一样 就是截取几位 不管中英文的,我的达到的效果是 比方把中文字符放进去能截取了3位,那么在截取英文的时候能不能自动识别为9位呢? 如果你是select left('发觉了对方',3) 这样打酱油党话,那么不要过来浪费时间 ------解决方案--------------------中文也好西文也好一个字符就是一个字符为什么要中文算1个西文算3个?
------解决方案...
php+mysql 取视频表信息。如何匹配截取namephp+mysql 数据库视频表 取视频信息 video_list其中有字段video_name 如下: 数据1《百家讲坛》20111220 数据2《百家讲坛》20111214 王立群读《史记》――秦始皇(三十)生死茫茫 如果是数据1 直接取video_name,输出如果是数据2 截取时间后面的字符输出8位日期数字的左右都有一个空格符。请问我该如何在循环中判断这2中类型并截取呢?是用正则么,该怎嘛写啊------解决方案----------...
mysql 截取字符串mysql 截取字符串截取4位字符 utf-8编码现在截取字符串效果都一样 就是截取几位 不管中英文的,我的达到的效果是比方把中文字符放进去能截取了3位,那么在截取英文的时候能不能自动识别为9位呢?
如果你是select left('发觉了对方',3) 这样打酱油党话,那么不要过来浪费时间------解决方案--------------------中文也好西文也好一个字符就是一个字符
为什么要中文算1个西文算3个?------解决方案-------------...
MYSQL中截取数据库时间字段等于提交上来的值怎么写MYSQL语句bl_time是字段(如2014-05-09 11:33:20)$Year是表单提交上来的值(如2014).....where YEAR('ruku.bl_time')=" . $Year;意思就是截取bl_time字段的年份等于表单提交上来的$Year的值where 后面的语句怎么写才正确?------解决方案--------------------$sql = "select * from table where year(bl_time) = $Year";------解决方案--------------------用month() 和 day() 是没问...