
mysql
小龙在山东
本博客为个人整理的技术笔记,仅用于学习。
展开
-
MySQL 日期比较
MySQL日期格式比较常用的两个函数是DATEDIFF()和TIMESTAMPDIFF()。原创 2024-01-03 20:00:00 · 1044 阅读 · 0 评论 -
mysql字符串转为数字的三种方法、字符串转日期
在MySQL中,使用+0运算符可以将一个非数字的值隐式地转换为数字。这在进行数学运算或比较操作时非常有用。需要注意的是,在使用+0进行隐式转换时,MySQL会尽可能将字符串转换为数字。如果字符串不能转换为数字,则会返回0。原创 2023-11-23 18:45:00 · 2877 阅读 · 0 评论 -
MySQL查询排名的2种方式:变量排名、窗口函数
例如,你可能希望按照班级对学生的分数进行排名。有时候,你可能想要查看排名的某个范围,例如,查看排名在前10名的学生。请注意,这些示例都是基于一个假设的students表的。根据你的实际数据表结构和需求,你可能需要对这些示例进行调整。这些示例都是基于一个假设的students表的。在这个查询中,RANK()函数首先将学生按照班级进行分组,然后在每个班级内按照分数进行排名。在这个查询中,我们首先计算所有学生的排名,然后通过WHERE子句筛选出特定学生的排名。如果你想要查询某个特定学生的排名,可以使用子查询。原创 2023-03-31 14:40:47 · 5020 阅读 · 0 评论 -
sqlalchemy (2013, ‘Lost connection to MySQL server during query
当sqlalchemy的engine等待一定时间后,再次执行sql,会报Lost connection to MySQL server during query的错误。原创 2023-01-01 16:53:21 · 1332 阅读 · 0 评论 -
查看MySQL连接数、缓存、锁、慢日志、语句、吞吐、配置等监控数据
使用 mysql的show命令实现获取,从 connects、buffercache、lock、SQL、statement、Database throughputs、serverconfig 7个方面获取监控数据。原创 2022-12-29 22:38:11 · 980 阅读 · 0 评论 -
MySQL字符串转小数
MySQL把字符串转换为小数,可以使用convert或cast,转换的目标类型时decimal类型。decimal第一个参数是有效数字数的精度,第二个参数是小数点右侧的位数。convert和cast支持的数据类型有。datetime:日期时间类型;unsigned:无符号整型。binary:二进制类型;decimal:浮点型;char:字符类型;date:日期类型;time:时间类型;signed:整型;原创 2022-12-18 12:19:13 · 4998 阅读 · 0 评论 -
设置MySQL默认引擎InnoDB
InnoDB支持事务,MyISAM不支持,对于InnoDB每一条SQL语言都默认封装成事务,自动提交,这样会影响速度,所以最好把多条SQL语言放在begin和commit之间,组成一个事务。原创 2022-11-09 20:30:00 · 514 阅读 · 0 评论 -
杀掉所有慢查询进程
SELECT CONCAT( 'kill ', id, ';' )FROM information_schema.processlistWHERE TIME >30结果:原创 2022-05-07 17:50:31 · 455 阅读 · 0 评论 -
设置mysql事务隔离级别
mysql的四种隔离级别隔离级别英文说明问题未提交读read uncommitted (RU)A事务已执行,但未提交;B事务查询到A事务的更新后数据;A事务回滚。脏读已提交读read committed (RC)A事务执行更新;B事务查询;A事务又执行更新;B事务再次查询时,前后两次数据不一致。不可重复读可重复读repeatable read ((RR))A事务无论执行多少次,只要不提交,B事务查询值都不变;B事务仅查询B事务开始时那一瞬间的数据快照。原创 2022-03-29 10:56:36 · 935 阅读 · 0 评论 -
MySQL update select 结果
MySQL update select 结果,需要用到INNER JOIN原创 2018-01-06 15:02:06 · 13356 阅读 · 0 评论 -
MySQL延时盲注:绕过逗号
MySQL延时盲注:绕过逗号原创 2021-10-24 11:38:33 · 423 阅读 · 0 评论 -
MySQL urlencode/urldecode 支持中文字符
MySQL urlencode/urldecode 支持中文字符urlencodeDELIMITER ; DROP FUNCTION IF EXISTS urlencode; DELIMITER | CREATE FUNCTION URLENCODE(str VARCHAR(4096) CHARSET utf8) RETURNS VARCHAR(4096) CHARSET utf8DETERMINISTICCONTAINS SQLBEGIN -- the individual c原创 2021-10-18 18:19:09 · 1259 阅读 · 1 评论 -
mysql字符串拼接函数:concat函数、concat_ws函数、concat_group函数之间的区别和举例
`CONCAT()`函数用于将多个字符串连接成一个字符串。`CONCAT_WS()` 代表 `CONCAT With Separator` ,是`CONCAT()`的特殊形式,第一个参数是其它参数的分隔符。`GROUP_CONCAT`函数返回一个字符串结果,该结果由分组中的值连接组合而成。原创 2021-08-17 16:13:22 · 341 阅读 · 0 评论 -
mysql GROUP_CONCAT 顺序排序
group_concat函数支持order by内部排序,例如:# 按照id倒序拼接imgSELECT GROUP_CONCAT(img ORDER BY id DESC) FROM `thumb_table`;参考:https://mariadb.com/kb/en/group_concat/原创 2021-08-06 16:43:52 · 9802 阅读 · 0 评论 -
mysql命令连接查询中文汉字乱码
用mysql命令行连接MySQL服务时,默认的编码方式:$ mysql -h192.168.1.2 -uroot -p123456mysql> show variables like '%character%';+--------------------------+--------------------------------------------+| Variable_name | Value原创 2021-07-16 14:00:41 · 393 阅读 · 0 评论 -
保存mysql查询数据到CSV,定制字段终止符、包围符、行终止符
将MySQL查询数据导出到CSV文件,一般用INTO OUTFILE,但是默认导出的文件用Tab分隔字段数据,每一条记录单独一行,用Excel打开不友好,一般需要用修饰符定制一下:FIELDS TERMINATED用来定义字段终止符,OPTIONALLY ENCLOSED BY定义字段数据包含符,ESCAPED BY定义转义符,例如ESCAPED BY ‘’,LINES TERMINATED BY定义行终止符。例如:SELECT order_id,product_name,qtyINTO OU原创 2021-07-16 10:34:48 · 730 阅读 · 0 评论 -
php PDO操作mysql数据库
MySQL API已经基本废止,MySQLi很多缺陷:不支持事务机制;仅支持MySQL,不能使用其它数据库。不安全,可能有注入风险不支持异常处理PHP的PDO扩展巧妙的解决了这些问题。PDO使用dsn连接,支持众多类型的数据库,如mysql,postgresql,oracle,mssql等。PDO(php data object)扩展类库为php访问数据库定义了轻量级的、一致性的接口,它提供了一个数据库访问抽象层。这样,无论你使用什么数据库,都可以通过一致的函数执行查询和获取数据。PDO原创 2021-03-04 15:42:33 · 722 阅读 · 1 评论 -
php mysqli操作数据库(CRUD)
Mysqli提供了面向对象和面向过程两种方式来与数据库交互。查询面向过程风格的写法<?php$con = mysqli_connect("localhost","root","123456", "db_name");if (mysqli_connect_errno($con)){ die('Could not connect: ' . mysql_error());}mysqli_set_charset($con, 'UTF-8');$sql = 'SELECT * FROM原创 2021-03-04 15:16:22 · 419 阅读 · 2 评论 -
[mysql] [python] “MySQL server has gone away (BrokenPipeError(32, ‘Broken pipe’))
用pymysql链接mysql时,报如下错误:[mysql] [python] "MySQL server has gone away (BrokenPipeError(32, ‘Broken pipe’))解决方法:把默认的max_allowed_packet改大一些,我改成了10M。修改/etc/my.cnf:[mysqld]max_allowed_packet=10M参考:https://blog.youkuaiyun.com/Ryxiong728/article/details/105016原创 2020-10-16 19:32:54 · 1765 阅读 · 0 评论 -
查找MySQL不同城市及其对应最新的记录(解决distinct group by order by的坑)
最近要查找MySQL不同城市及其对应最新的记录,遇到了distinct、group by和order by的坑。原创 2020-08-07 11:56:00 · 773 阅读 · 0 评论 -
一图说明各种sql joins
今天在群里发现一张很NB的图:原创 2020-02-11 09:16:41 · 354 阅读 · 0 评论 -
MySQL中MAX函数与Group By一起使用记录信息不一致
如果想要查询某个字段的分组,并且把分组里最大值及其对应的记录信息查询出来,一般会用GROUP BY和max一块用,但是这里面有一个坑。mysql> select * from test;+----+-------+------+-------+| id | name | age | class |+----+-------+------+-------+| 1 | qiu ...原创 2019-10-31 14:17:00 · 2461 阅读 · 1 评论 -
mysql删除重复记录并且只保留一条 You can't specify target table `tb` for update in FROM clause
重复记录如果不设置唯一索引约束,很容易插入重复数据,例如表单重复提交。idurl1www.a.com2www.a.com3www.a.com4www.b.com5www.b.com6www.c.com这时候就不可避免的要把重复记录删掉。首先要查出来哪些是不重复的数据:SELECT MIN(id) id FROM `tb` ...原创 2019-08-27 16:09:07 · 405 阅读 · 0 评论 -
Mysql查询重复字段
查询category表中,catname字段值重复的数据及重复次数select catname, count(*) as count from category group by catname having count&gt;1原创 2018-12-03 15:14:11 · 3573 阅读 · 0 评论 -
MySQL避免重复插入记录的四种方法
MySQL的INSERT INTO IF EXISTS语句可以保证不重复插入。INSERT INTO iqilu_category(catname,type,cid,caturl,keywords) SELECT '中国人', 2, 2031, 'china','中国人民' FROM DUAL WHERE NOT EXISTS(SELECT catname FROM iqilu_categ...原创 2018-12-05 11:44:18 · 4390 阅读 · 0 评论 -
Node.js MySQL
简介一个纯Node.js集成了MySql协议的JS客户端。不需要任何编译,100% MIT licensed。安装驱动用阿里的cnpm安装:cnpm install mysql用Node自带的npm安装:npm install mysql安装最新版:npm install mysqljs/mysql连接查询var mysql = require('mysql')...原创 2018-11-20 18:02:09 · 597 阅读 · 0 评论 -
MySql避免重复插入记录
方案一:使用ignore关键字如果是用主键primary或者唯一索引unique区分了记录的唯一性,避免重复插入记录可以使用:insert ignore into table_name(email,phone,user_id) values('test9@163.com','99999','9999'),这样当有重复记录就会忽略,执行后返回数字0,还有个应用就是复制表,避免重复记录转载 2018-02-02 14:14:07 · 2035 阅读 · 0 评论 -
MySQL时间戳和时间的获取/相互转换/格式化
获取当前时间戳select unix_timestamp();同select unix_timestamp(now());获取当前时间select now();时间转时间戳select unix_timestamp('2018-01-15 09:45:16');时间戳转时间select from_unixtime(15159807原创 2018-01-15 10:21:20 · 199204 阅读 · 4 评论 -
Spark获取并分析Mysql数据
安装环境Java环境安装并启动Spark下载并解压Sparkwget https://d3kbcqa49mib13.cloudfront.net/spark-2.2.0-bin-hadoop2.7.tgztar xzvf spark-2.2.0-bin-hadoop2.7.tgz /usr/localcd /usr/localln -s spark spark-2.2.0-bin-hadoop原创 2017-08-31 18:11:23 · 1940 阅读 · 0 评论 -
mysqldump和binlog备份恢复某个库/表
MySQL数据备份之mysqldump使用各种用法说明最简单的用法:mysqldump -uroot -pPassword [database name] > [dump file]上述命令将指定数据库备份到某dump文件(转储文件)中,比如:mysqldump -uroot -p123 test > test.sql生成的test.sql文件中包含建表语句(生成数据库结构哦)和插入数据的inser原创 2017-07-07 15:40:05 · 3109 阅读 · 0 评论 -
mysql表注释和字段注释
创建表时加注释CREATE TABLE my_tb( field_name INT NOT NULL COMMENT '字段的注释')COMMENT='表的注释';修改表的注释ALTER TABLE my_tb COMMENT '修改后的表注释';修改字段的注释ALTER TABLE `my_tb` MODIFY `field_name` INT NOT NULL COMMENT原创 2017-07-03 16:05:40 · 890 阅读 · 0 评论 -
mysql获取年月日周季度
MySQL经常查询某个日期时间的记录,可以用以下方法转换到对应的年月日时分秒季度。获取第几天SELECT to_days(&amp;amp;amp;quot;2018-12-07&amp;amp;amp;quot;); # 737400SELECT to_days(&amp;amp;amp;quot;2018-12-07 10:17:12&amp;amp;amp;quot;); # 737400获取第几秒SELECT to_s原创 2018-12-20 11:28:29 · 6243 阅读 · 0 评论 -
ERROR 1221 (HY000): Incorrect usage of UNION and ORDER BY
union和union all区别UNION会把两个查询语句的结果集合并起来。union会过滤掉两个结果集中重复的行,而union all不会过滤掉重复行。union order在union两个带order的select的时候,会报错。ERROR 1221 (HY000): Incorrect usage of UNION and ORDER BY解决方法就是使用括号,把两个SELE...原创 2018-12-12 11:20:27 · 2073 阅读 · 0 评论 -
MySQL排名
MySQL中没有Rank排名函数,当我们需要查询排名时,只能使用MySQL数据库中的基本查询语句来查询普通排名。尽管如此,可不要小瞧基础而简单的查询语句,我们可以利用其来达到Rank函数一样的高级排名效果。在这里我用一个简单例子来实现排名的查询:首先我们先创建一个我们需要进行高级排名查询的players表,CREATE TABLE `players` ( `pid` int(2) NOT...原创 2018-12-29 18:34:21 · 2044 阅读 · 0 评论 -
mysql explain type的区别和性能优化
mysql查看性能工具explain中type有很多种,主要的有:链接类型说明system表只有一行const表最多只有一行匹配,通用用于主键或者唯一索引比较时eq_ref每次与之前的表合并行都只在该表读取一行,这是除了system,const之外最好的一种,特点是使用=,而且索引的所有部分都参与join且索引是主键或非空唯一键的索引ref如果每次只...原创 2019-07-09 13:17:56 · 23189 阅读 · 2 评论 -
mysql distinct 有重复字段
distinct去除的不是重复字段,而是重复记录,就是去除DISTICT后面所有字段都相同的记录。举例:假设在一个多店版的商城系统里,有一个记录销售记录的表,记录着每个店铺的每一笔销售额。如下:运行下面的查询,然后分别对比结果,我们就不难发现,distinct是去除重复的记录。第一条查询 select distinct uid from sale_log; 筛选出了有销售额的店主。第二...原创 2019-05-31 12:02:19 · 2023 阅读 · 0 评论 -
Windows10下MySQL5.7 zip安装
下载下载地址:https://dev.mysql.com/downloads/mysql/5.7.html#downloads不谢,直接下载。安装把zip压缩包解压到要安装的目录。在安装目录下新建my.ini,内容如下:[mysql]# 设置mysql客户端默认字符集default-character-set=utf8 [mysqld]#设置3306端口port = 330...原创 2019-02-02 18:03:09 · 716 阅读 · 0 评论 -
DBA常用的MySQL语句
Mysql常用sql语句原创 2017-04-20 15:34:27 · 2490 阅读 · 0 评论