用符号连接查询分组里字段值 GROUP_CONCAT(amount)
用指定符号连接查询分组里字段值 GROUP_CONCAT(amount separator "','")
str:要处理的字符串 delim:分隔符 count:计数 SUBSTRING_INDEX(str,delim,count)
数组分割为字符串,按要求截取长度 select `year`,SUBSTRING_INDEX(GROUP_CONCAT(amount),',',2) FROM haha GROUP BY(`year`)
连接几个字符串,可以多个哦 concat('username','age','password')
统计字段中某一字符串出现的次数 举例:查询user_reply中的content字段中字符串“captain”出现的次数(思路:先计算原始conten的长度,再统计取出captain的长度,两者相减,除以captain的长度,就可以得到字符串出现的次数了) SELECT (LENGTH(`content`)-LENGTH(REPLACE(`content`,"captain", "")))/LENGTH("captain") AS "count" FROM user_reply
待测试... select sno,count(sno) as num from logs where scores>=60 group by sno having num>5 order by num desc limit 10
去除重复的值 DISTINCT
 取最大值 max
 取平均值 avg
 取最小值 min
 是一个空的 is null
声明一个转译符号   例:(声明'c'为转译符号) SELECT cno,cname from c where cname like '%DBc_design%' ESCAPE 'c'
 不在...之间 SELECT username FROM user WHERE username not in ('小小','小明') 
 求绝对值  ABS('field')
获取删除数据库内所有表的sql语句 SELECT CONCAT('drop table ',table_name,';') FROM information_schema.`TABLES` WHERE table_schema='数据库名';
union联合查询,同时执行多条sql,查询结束字段数量必须相同,查询结果全部自动合并至第一个表的字段下.重复了行会被自动去掉.链接: 多表查询优化SELECT * FROM `user1` UNION SELECT * FROM `user2`
 导致全表扫描失去索引功能的关键字操作  where num is null , where num=null , in(可以用exists代替in) , not in , like '%' ,
 between...and... ,
 删除表内全部数据 ! 删除后不记录mysql日志,不可以恢复数据(谨慎使用)  innodb执行truncate是先drop table(原始表),再创建一个跟原始表一样空表,速度要远远快于delete逐条删除行记录。(思考:删除百万级数据的时候是否可用truncate table
查询tb_xes_departments 表内parent_ids 包含指定字段的所有数据,用指定符号拼接为字符串,然后正则匹配查询tb_xes_employee表内department_ids字段 SELECT * FROM tb_xes_employee WHERE  department_ids REGEXP (SELECT GROUP_CONCAT(DISTINCT(id) separator '|') FROM tb_xes_departments WHERE parent_ids LIKE '%58391092%' OR id='58391092')
 正则匹配 1或2或3  REGEXP '1|2|3'
 用指定符号分割指定字段  GROUP_CONCAT(id separator'|')
 类似like,比like查询更加高效的查询方式(字段,'要查询的内容')  instr(username,'小')
 UPDATE xxx WHERE id IN( FROM ) 错误问题,用虚拟表规避错误 UPDATE a SET `name`='1' WHERE id=1 AND age=(SELECT MAX(age) FROM (SELECT MAX(age) AS age FROM a WHERE id=1) a)
 max_prepared_stmt_count的prepare上限[Can't create more than max_prepared_stmt_count statements]  https://blog.csdn.net/dbaxiaosa/article/details/42742707
 获取mysql正在执行的线程情况  SHOW FULL PROCESSLIST
 查看数据库的隔离级别  select @@tx_isolation;
 查看innodb的事务表INNODB_TRX正在锁定的事务线程  SELECT * FROM information_schema.INNODB_TRX;
 Kill掉指定线程  KILL 线程id;
 自定义group_concat_max_len长度  set GLOBAL group_concat_max_len = 102400;
 清空表的数据,且让自增id重新从0开始  truncate table tableName
 去掉指定字段中的回车符跟换行符  UPDATE table_name SET  `name`= REPLACE(REPLACE(`name`, CHAR(10), ''), CHAR(13), '');
 去掉指定字段中的空格跟水平制表符  UPDATE table_name SET  `code`= REPLACE(REPLACE(`code`, CHAR(09), ''), CHAR(32), '');
 备份指定数据库   mysqldump -uroot -p databaseName > databaseName.sql
 数据库导入/恢复命令  use databaseName; source ./databaseName.sql
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   

 
---------------------------------------------------------------------------------------------
唯有志存高远,方能风行天下。

道之所存,虽千万人吾往矣! 情之所钟,虽千万里吾念矣~

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。