mysql
可以简单点
人贵在有所追求
展开
-
MySql中 delimiter 使用
近日,项目准备上一个新版本,项目组同事加班加点,终于把bug改完,然后在测试环境部署演练了数次。万事具备,只欠上线。。。最终上线执行脚本的时候,还是出现了问题。原因是我们的脚本中有一个函数。我们上线是执行脚本都是使用命令行执行脚本,不能使用工具,在函数中存在多个分号,命令行遇见分号直接就执行了sql,然后就语法错误了。错误如下图,直接就语法错误了:然后项目经理被叼了一顿,同事加急改脚本。经过一番百度,最终找到了解决办法,那就是使用mysql的delimiter,delimiter..原创 2021-04-13 20:46:36 · 2803 阅读 · 0 评论 -
mysql 常用操作 group_concat
group_concat函数主要配合group by 使用如上图:我们按照attachment_type进行分类,对file_name进行拼接可以这么写select group_concat(file_name) from t8_prod_document_attachment group by attachment_type那么会得到如图的这样一个结果,就是如果存在多个一样的attachment_type默认会以','将file_name进行拼接。group_concat函数原创 2021-04-05 18:01:17 · 714 阅读 · 0 评论 -
mysql 使用存储过程编写可重复执行的sql脚本
往表中添加字段:DROP PROCEDURE ADD_TABLE_COLUMN;CREATE PROCEDURE ADD_TABLE_COLUMN()BEGIN IF NOT EXISTS (SELECT * FROM information_schema.COLUMNS WHERE table_name = '表名' AND column_name = '字段名') THEN ...原创 2021-03-29 22:13:00 · 771 阅读 · 0 评论 -
mysql find_in_set函数
msyql的FIND_IN_SET(str,strlist)用于判断strlist是否包含str如果str不在strlist 或strlist 为空字符串,则返回值为 0 。如任意一个参数为NULL,则返回值为 NULL。如果strlist包含str,str在strlist中的位置。具体用法如下:1.判断‘6,7,8’是否包含9,包含则显示666666,不包含则不显示select '666666' b from dual where find_in_set('9','6,7,8');2原创 2021-03-26 23:11:47 · 364 阅读 · 0 评论 -
SQL 分析函数之KEEP
业务场景:需要在表中查询日期最小,但是利率最大记录场景复现:先制造临时表数据:WITH bond_yield AS(SELECT 1 id, '20201012' tradedate , 'a' bond,2.95 yield FROM dual UNION ALLSELECT 2 id, '20201013' tradedate , 'a' bond,2.85 yield FROM dual UNION ALLSELECT 3 id, '20201014' tradedate ,原创 2020-11-30 16:34:49 · 994 阅读 · 0 评论 -
MYSQL常用知识
1. datediff(‘2020-10-01’,‘2020-09=03’) 获取两个日期的天数原创 2020-11-03 23:20:58 · 362 阅读 · 0 评论 -
Navicat for mysql 显示中文乱码问题
使用navicat for mysql客户端给表添加注释时,中文乱码。百度了一波,找到了处理过程1.查看数据库编码为" utf8 -- UTF-8 Unicode",也就是说数据库字符集没有问题,初步推测为客户端的问题2.在navicat里右击连接,选择连接属性,切换到高级选项,去掉"Use MySQL character Set"前的勾,在编码里选择" 20936 (Simplified Chinese GB2312)"字符集3.保存...原创 2020-09-13 17:49:26 · 1547 阅读 · 0 评论 -
linux下Mysql忘记密码
具体步骤如下: 修改MySQL的配置文件(默认为/etc/my.cnf),在[mysqld]下添加一行skip-grant-tables 保存配置文件后,重启MySQL服务 service mysqld restart 再次进入MySQL命令行 mysql -uroot -p,输入密码时直接回车,就会进入MySQL数据库了,这个时候按照常规流程修改root...原创 2019-06-21 11:14:38 · 139 阅读 · 0 评论 -
关于mysql关联查询然后进行分页的问题
今天使用mysql的关联查询进行分页的时候遇到了一个问题,以前在单表查询的时候没有遇到这一的情况。场景还原:一张评论表,一张回复表,属于一对多的关系。刚开始使用下面这条sql语句进行查询。SELECT*FROM t_comment c LEFT JOIN t_reply r ON(c.id = r.comment_id) where c.courseware_id = 5 ...原创 2019-05-15 16:54:39 · 1722 阅读 · 2 评论 -
mysql中where与having的区别
where与having的区别:1.where是数据从磁盘读入内存的时候进行判断, 而having是磁盘读入内存后再判断。像上面截图这种使用where的情况,就是先从磁盘读取数据如果数据的email = '0177@gmx.de',那么这条数据就放人内存中,如果email不等于0177@gmx.de那么就直接忽略这条数据。上面截图使用having的情况,数据库就会先...原创 2018-08-01 16:48:28 · 2395 阅读 · 0 评论 -
mysql模糊查询%在前面和%在后面的区别
mysql使用模糊查询的时候%在前面的时候是扫全表效率低,%在后面的时候才会走索引效率较高。下面这个截图就是%在前面的sql执行计划。%在后面的sql执行计划。 从两张截图中的执行计划可以看出,第一张截图中执行计划里面的type是ALL,既这个sql会全表扫描,所以这个sql的效率是很低的,而第二张截图中,从执行计划里面的type是rang,既这个sql是范围查询,不是全...原创 2018-08-01 15:48:25 · 7042 阅读 · 0 评论 -
mysql中将长整型转换为时间类型或将时间类型转换为长整型
长整型转换为时间类型的关键字:FROM_UNIXTIME(长整型,format);时间类型转换为长整型的关键字:UNIX_TIMESTAMP(时间类型);长整型转换为时间类型例子:select FROM_UNIXTIME(1531692180042/1000,'%Y-%m-%d');这里要注意: mysql数据库中的长整型,比Java中的长整型少了后面的毫秒数,而我例子中的长整型是在...原创 2018-07-26 20:46:11 · 3338 阅读 · 0 评论