找准目标,不断前行

随笔分类 -  Sql

摘要:以下用法只支持mysql8.0以上; 遇到了个数据结构,字符串用逗号隔开的,需要分拆后统计数据,用到了mysql8的一个JSON_TABLE用法 CREATE TABLE items ( id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(255), ta 阅读全文
posted @ 2024-10-23 16:22 kevinZhuZhu 阅读(239) 评论(0) 推荐(0)
摘要:如果您有一个字段存储的是多个值,例如分号分隔的字符串,而您仍然需要进行精准匹配,可以使用 FIND_IN_SET 函数,但需要注意 FIND_IN_SET 是基于逗号分隔的字符串。如果您的字段是分号分隔的,可以先将其转换为逗号分隔的字符串。 假设 users 表的 roles 字段存储的是分号分隔的 阅读全文
posted @ 2024-10-23 10:22 kevinZhuZhu 阅读(138) 评论(0) 推荐(0)
摘要:GROUP_CONCAT(班级成绩 ORDER BY 个人总分 DESC SEPARATOR '; ') 班级成绩为你要排序的字段的值:eg:张三:100,李四:99 ORDER BY 为排序字段 SEPARATOR 为拆分你需要的字符 阅读全文
posted @ 2024-10-14 15:39 kevinZhuZhu 阅读(178) 评论(0) 推荐(0)
摘要:今天突然发现有个接口中的值被截取了,debug一波后发现sql查询出来的结果已经是不完整的,排查后发现这个sql用了group_concat后查询出来的数据被截取了,此时我的内心。。。 group_concat在部分版本中默认字符长度为1024,真是个大坑,不知道的还以为能完整拼接呢,结果被截取了, 阅读全文
posted @ 2022-04-21 00:04 kevinZhuZhu 阅读(562) 评论(0) 推荐(0)
摘要:1. group by 和 where 同时使用 where > group by 2. max,where,group by同时使用 where > group by > max 很多时候我们使用了第二种的时候会出现数据数据错位的问题, 阅读全文
posted @ 2022-03-02 10:40 kevinZhuZhu 阅读(383) 评论(0) 推荐(0)
摘要:#!!!!!测试专用,使用时注意数据安全 #创建表tb_test DROP TABLE IF EXISTS tb_test; CREATE TABLE IF NOT EXISTS tb_test( id int(11) AUTO_INCREMENT PRIMARY KEY #添加了 主键约束 ); 阅读全文
posted @ 2022-01-17 16:20 kevinZhuZhu 阅读(70) 评论(0) 推荐(0)
摘要:先来例子,仔细感悟 #输出0也就是FALSE select 0 = '123abc'; #输出123 select cast('123abc' as signed); #123abc select cast('123abc' as char); #输出1也就是TRUE select 0 = 'abc 阅读全文
posted @ 2021-12-22 17:32 kevinZhuZhu 阅读(472) 评论(0) 推荐(0)
摘要:来一个测试表table1,(友情提醒,测试库执行脚本有时候也需要备份,所以修改sql为你的表后不要着急执行,先来个备份) DROP TABLE IF EXISTS `table1`; CREATE TABLE `table1` ( `id` int(11) NOT NULL, `name` varc 阅读全文
posted @ 2021-05-24 15:32 kevinZhuZhu 阅读(403) 评论(0) 推荐(0)
摘要:1.新增字段 ALTER TABLE test ADD COLUMN `aa` varchar(16) COMMENT '新增字段' AFTER `a`; 2.修改字段类型 && 长度 ALTER TABLE test MODIFY COLUMN aa int(1); 3.删除字段 alter ta 阅读全文
posted @ 2021-04-09 13:53 kevinZhuZhu 阅读(73) 评论(0) 推荐(0)
摘要:SELECT a.*, (@i :=@i + 1) AS rownum FROM table表名 a, (SELECT @i := 0) b 阅读全文
posted @ 2021-02-25 15:12 kevinZhuZhu 阅读(152) 评论(0) 推荐(0)
摘要:CREATE TABLE `test` ( `id` int(11) DEFAULT NULL, `name` varchar(255) DEFAULT NULL, `dept` varchar(11) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf 阅读全文
posted @ 2020-09-04 09:59 kevinZhuZhu 阅读(457) 评论(0) 推荐(0)
摘要:首先查询:SELECT * FROM INFORMATION_SCHEMA.INNODB_TRX; 确定死锁线程id:trx_mysql_thread_id 然后 kill 这个id,eg: kill 2140310 阅读全文
posted @ 2020-07-31 14:04 kevinZhuZhu 阅读(290) 评论(0) 推荐(0)
摘要:首先准备几条测试数据 DROP TABLE IF EXISTS `test`;CREATE TABLE `test` ( `n_id` int(11) DEFAULT NULL, `d_createdate` datetime DEFAULT NULL) ENGINE=InnoDB DEFAULT 阅读全文
posted @ 2020-05-12 14:16 kevinZhuZhu 阅读(317) 评论(1) 推荐(0)
摘要:有时候我们需要使用coacat函数拼接一些字段的生成一个字符串,比如:select concat(field1,field2,field3) from xxx; 这时候我们就会的到一个这些字段的值拼接而成的一个字符串; 有时候拼接时最后的字符串是个空,这时候不要感觉奇怪,事情都是有原因的, mysq 阅读全文
posted @ 2019-08-30 16:08 kevinZhuZhu 阅读(391) 评论(0) 推荐(0)
摘要:一、DML DML(data manipulation language)数据操纵语言: 我们经常会用到的 INSERT、DELETE、UPDATE、SELECT语句。 主要用来对数据库的数据进行一些操作。 INSERT INTO table_name (列1, 列2,...) VALUES (值1 阅读全文
posted @ 2019-03-27 20:21 kevinZhuZhu 阅读(871) 评论(0) 推荐(0)
摘要:时间转字符串: #结果:2019-02-14 16:00:01 字符串转时间 STR_TO_DATE(str,format)函数是将时间格式的字符串(str),按照所提供的显示格式(format)转换为DATETIME类型的值 #结果:2019-02-14 16:00:01 阅读全文
posted @ 2019-02-14 15:32 kevinZhuZhu 阅读(407) 评论(0) 推荐(0)