My SQL 常用方法小集合


前言

提示:在my sql中运用到的小方法或者函数自己留做记录大家看看就好


提示:以下是本篇文章正文内容,下面案例可供参考

一、MY SQL函数

根据自己所需对号入座,

1.MY SQL查询表结构
SHOW CREATE TABLE   
  
 2.查询条数限制
select * from sss  limit 84

3.限制条件是3000-4999
SELECT IFNULL(MAX(数字字段) + 1, 3000) AS USR_ID FROM 表名 WHERE 数字字段 BETWEEN '3000' AND '4999'

4.Mysql 配合group by 对相同的列进行整合
 group_concat(字段)
 
5.Mysql  中拼接字符串
concat( 字段1, '-' , 字段2)

6.获取当前时间并且格式化
SELECT date_format(NOW(), '%Y%m%d%H%i%S');

7.去除字段中的特殊字符
SELECT replace(ROLE,'_','')  from tant_mst

8.mysql中会出现超出最大值,加上一下语句即可
SET GLOBAL group_concat_max_len=1024000;
SET SESSION group_concat_max_len=1024000;
**(配合验证的语句)**
解除 Group_concat(nec.TYUUMON_ID)长度限制
SHOW VARIABLES LIKE "group_concat_max_len"; #查询最大值

9. 一个字段多个值使用方法拆分
    SELECT a.*, SUBSTRING_INDEX( SUBSTRING_INDEX( 需要循环的字段(a.ro), ',', b.help_topic_id + 1 ), ',',- 1 ) AS ROLE_ID
    FROM  表a   AS a
    LEFT JOIN mysql.help_topic AS b ON b.help_topic_id < ( length( 需要循环的字段(a.ro) ) - length( REPLACE ( 需要循环的字段(a.ro), ',', '' ) ) + 1 )
    
10.页面用到分页时后台使用的方法(此方法在mysql中不可用,需要在项目后台上方有查询sql并带着
 SQL_CALC_FOUND_ROWS 标识才可 在同一方法下用第二条语句查询全部数据 用于加载到分页工具上)
 首先查询数据
 select SQL_CALC_FOUND_ROWS  * from x Limit 0,20;
 其次查询上条数据的所有值
 SELECT FOUND_ROWS() 'TOTAL';
11.删除自增历史数据 
 TRUNCATE TABLE 表名

二、使用步骤

1.也可以搭配使用,若需要拆解后关联表取值则可搭配使用

代码如下(示例):

 SELECT  c.*,
     group_concat(表b中需要集合的字段(b.sss)) as ROLE_NAME
    FROM
    (
    SELECT a.*, SUBSTRING_INDEX( SUBSTRING_INDEX( 需要循环的字段(a.ro), ',', b.help_topic_id + 1 ), ',',- 1 ) AS X2
    FROM  表a   AS a
    LEFT JOIN mysql.help_topic AS b ON b.help_topic_id < ( length( 需要循环的字段(a.ro) ) - length( REPLACE ( 需要循环的字段(a.ro), ',', '' ) ) + 1 )
    ) c
    LEFT JOIN 表b as b
    ON 表b.x1= c.X2
    GROUP BY 表c中的唯一字段 (c.w1)

2.concat()活用

代码如下(示例):

concat(字段1,字段2,字段3)
显示为:字段1字段2字段3

3.MY sql填充数字或者字符

代码如下(示例):

填充数字
SELECT LPAD(@num:=需要填充字段+1, 6, 0) as s FROM 表 ,(SELECT @num:=0) r
填充字符
SELECT LPAD(@num:=需要填充字段+1, 6, 'q') as s FROM 表 ,(SELECT @num:=0) r

总结

提示:这里对文章进行总结:
以上就是本小白对MY sql的小集合,其他小白看过来,大佬请指点。

猜你喜欢

转载自blog.csdn.net/weixin_45235159/article/details/114087945