MySQL
慌途L
随手记录,错误之处敬请指出。
展开
-
MySQL 行转列
一、从图一转为图二图一:图二:二、SQL:图一sql:SELECT warehouse_code, operate_type, sum(qty) FROM `warehouse_operate_record`group by warehouse_code, operate_type;图二sql:SELECT a.warehouse_code, sum(if(a.operate_type = 'container', a.qty, 0)) AS contain原创 2022-04-22 15:22:40 · 97 阅读 · 0 评论 -
InnoDB解决幻读的方案 -- LBCC&MVCC
InnoDB解决幻读的方案 – LBCC&MVCC最近看了一篇写的挺不错的文章,分享给大家,文章对LBCC和MVCC都做了比较详细的解释说明,看完会有一种通透的感觉:https://mp.weixin.qq.com/s/738dB9Da-AIbMuaQLgqlzA.原创 2022-04-01 20:45:00 · 419 阅读 · 0 评论 -
Explain详解与索引优化实践 | 文章记录
https://www.cnblogs.com/tufujie/p/9413852.htmlhttps://blog.csdn.net/qq_25667815/article/details/108682715原创 2021-08-05 09:35:02 · 128 阅读 · 0 评论 -
MySQL | GROUP_CONCAT函数,将某一列的值用逗号拼接
将某一列的数据合并成用逗号拼接的字符串某个表的一个title字段如下,业务需求是将这一列的合并成用逗号拼接的字符串select GROUP_CONCAT(title)from tableNamewhere id = 102结果如下:类似用法:...原创 2020-11-24 18:13:38 · 2638 阅读 · 1 评论 -
MySQL | REGEXP正则表达式:判断某个字段或字符串是否为纯数字
场景介绍近期处理埋点的数据,发现很多手机号乱码的,所有找了一下删除乱码数据的方法,将正确手机号的数据留下来,这里只做纯数字的匹配,不做手机号的检验,需要校验手机号的自行找到对应的正则表达式进行匹配这里主要用到MySQL的正则表达式进行正则匹配使用下面的sql可以匹配是否是纯数字,返回1则为匹配成功,0则匹配失败select ('1234156' REGEXP '[^0-9]') = 0;结果:1但是空格还是会匹配到######所以条件需要加上user_mobile != ‘’ an原创 2020-11-24 18:13:42 · 8092 阅读 · 1 评论 -
MySQL | 查看 MySQL 版本号 & 设置时间字段为自动更新(CURRENT_TIMESTAMP)
MySQL | 使用 Navivat 查看 MySQL 版本号select version() from dual;结果:原创 2020-10-20 18:42:39 · 1836 阅读 · 1 评论 -
MySQL | 实现设置某个字段的值自增
MySQL | 实现设置某个字段的值自增由于某个业务需要手动操作数据库,并设置主键ID不重复。做个记录set @rownum=0;select a.id, @rownum := @rownum +1 as id from test a;结果:原创 2020-08-05 17:41:13 · 2973 阅读 · 1 评论 -
MySQL本机 IP 连接不上,而用 localhost 和127.0.0.1可以连接 | 解决方法
grant all privileges on . to ‘用户名’@‘IP地址’ identified by ‘密码’;all privileges 所有权限 也可以写成 select ,update等. 所有库的所有表 如 databasename.*用户名 随便起IP 数据库所在的IPidentified by ‘密码’ 表示通过密码连接执行完上述命令后用下面的命令刷新一下权限flush privileges;...原创 2020-07-16 16:45:19 · 2524 阅读 · 1 评论 -
MySQL | 查看是否被锁以及解锁
1.查看当前有那些表是打开的,In_use列表示有多少线程正在使用某张表,Name_locked表示表名是否被锁show OPEN TABLES where In_use > 0;2.1.显示哪些线程正在运行:只列出前100条show processlist;2.2.显示哪些线程正在运行:全列出show full processlist;3.杀掉指定mysql连接的进程idid为第二步的第一列的idkill id...原创 2020-07-01 17:10:27 · 3625 阅读 · 1 评论 -
Linux 上 Mysql 常用操作命令
个人记录Linux 上 Mysql 常用操作命令一、连接数据库输入:mysql -uroot -p然后输入密码二、注意每次都要加结尾符号:";"- show databases; --查看所有数据库- use 数据库名字; --进入到某个数据库- show tables; --查看上面use命令进入数据库的所有表- describe 表名; --显示数...原创 2019-05-16 19:09:21 · 439 阅读 · 1 评论 -
Windows 安装ubuntu 并使用 xshell 连接
安装opensshsudo apt-get install openssh-server2. 查询openssh是否已经运行ps -e | grep ssh显示sshd,则已经运行,否则执行:v/etc/init.d/ssh start3. 假如连接本地虚拟机中的ubuntu,需要更改虚拟机网卡设置,变成桥接网卡,并重启虚拟机。打开Xshell,在连接设置中输入ubuntu的...原创 2019-08-09 19:16:55 · 1759 阅读 · 0 评论 -
MySQL字符串函数 | concat/concat_ws的使用
MySQL字符串函数 | concat()/concat_ws()连接字符串一、两个函数的区别- concat(exp1,exp2,···)函数---exp1和exp2为任意字符串,可以多个,按顺序直接拼接起来,但是不能有NULL,否则结果就NULL- concat_ws(regex,exp1,exp2,exp3,···)函数---regex:为任意字符串,用于拼接exp1、ex...原创 2018-12-06 21:07:44 · 1373 阅读 · 0 评论 -
MySQL yyyyMMdd类型的值转日期
做个记录MySQL yyyyMMdd类型的值转日期1.直接看图可知2.关于DATE_FORMAT函数可参考:MySQL 日期和时间戳的转换 | 以及DATE_FORMAT()用法.原创 2018-12-26 17:25:52 · 17506 阅读 · 0 评论 -
MySQL 日期和时间戳的转换 | 以及DATE_FORMAT()用法
一、MySQL 日期和时间戳的转换1.日期转时间戳select UNIX_TIMESTAMP('2018-12-25 12:25:00');结果:15457119002.时间戳转日期:FROM_UNIXTIME(unix_timestamp) --unix_timestamp为时间戳select FROM_UNIXTIME(1545711900);结果:2018-12-...原创 2018-12-25 17:47:53 · 128049 阅读 · 4 评论 -
MySQL 截取小数位数以及取整
给自己做个记录MySQL 截取小数位数以及取整1.ROUND(X,D)函数 X指要处理的数,D是指保留几位小数 --会进行四舍五入法 select ROUND(123456.6789,2); 结果:123456.68select ROUND(123456.6123,2); 结果:123456.612.TRUNCATE(X,D)函数 X指要处理的...原创 2018-12-25 19:09:58 · 8202 阅读 · 1 评论 -
MySQL UTC时间转北京时间 | convert_tz()函数
个人记录MySQL UTC时间转北京时间 | convert_tz()函数一、convert_tz()函数介绍二、示例 (utc时间比北京时间少八个小时)2.1 yyyy-MM-dd格式:select CONVERT_TZ("2018-12-25 12:25:00","+00:00","+08:00") as 北京时间;2.2 时间戳格式:select F...原创 2019-04-03 14:32:10 · 21269 阅读 · 1 评论 -
Boot2Docker(三)| mysql安装并持久化
个人记录Docker mysql安装Docker redis安装.一、搜索mysql镜像命令:docker search mysql二、拉取mysql镜像命令:docker pull mysql:5.7 (如果不输入后面的 ‘:5.7’ 即为拉取最新版的镜像)三、使用mysql镜像,运行容器命令:docker run -p 3306:3306 --name mys...原创 2019-04-23 18:43:46 · 429 阅读 · 0 评论 -
MySQL 根据一个值查询数据表中某个字段包含某个数值 | find_in_set()
MySQL 使用一个值匹配单个字段中多个值 | find_in_set()一、业务描述我有一个表结构,其中一个字段是多选的情况,所以使用多的一方表的ID用","逗号拼接起来存进这个字段,如下图所示:(每个字段里都是其他表的主键ID)现在需要根据多的一方表中的某个ID去查询包含这个ID 的数据,如以上三个字段,都是一对多,包含其他表的ID,然后我根据 certification_id 和...原创 2019-07-24 18:51:23 · 5295 阅读 · 1 评论 -
MySQL 从字符串字段中提取数值的方法
MySQL 从字符串字段中提取数值的方法个人记录由于百度搜索结果大部分都是写函数进行转换,个人感觉太繁琐,从网上收集了以下方法,已测试过,可行。需求描述:有一个公司信息表(r_supplier),其中有一个字段(register_capital)是公司的注册资本,需要提取前面的数字进行条件判断。如图所示:一、使用 CAST() 方法CAST(expr AS type)e...原创 2019-07-29 18:48:37 · 18830 阅读 · 5 评论 -
MySQL日期相关函数 | 获取当前时间前30天后30天日期
主要使用MySQL的 DATE_SUB() 函数一、简介二、使用:当前日期的前三十天和后三十天SELECT * from user where create_time between DATE_SUB(NOW(),INTERVAL 30 day) and DATE_SUB(NOW(),INTERVAL -30 day)示例select now();-- 当前时间...原创 2018-12-06 20:47:50 · 40533 阅读 · 3 评论