mysql实现行转列作为临时表、以及字符分割行转列

news2024/11/24 12:10:46

1.需求:实现两个日期段转换为具体的日期天数(2022-10-23至2022-10-26得到一张2022-10-23、2022-10-24、2022-10-25、2022-10-26的临时表) 

SELECT
    DATE_FORMAT( DATE_ADD( '2022-10-23 22:00:00', INTERVAL ( help_topic_id ) DAY ), '%Y-%m-%d' ) AS days 
FROM
    mysql.help_topic 
WHERE
    help_topic_id <= TIMESTAMPDIFF(
        DAY,
    CONCAT( '2022-10-23 22:00:00' ),
    CONCAT( '2022-12-26 22:00:00' ))

help_topic本身是Mysql一个帮助解释注释表,用于解释Mysql各种专有名词,由于这张表数据ID是从0顺序增加的,方便我们用于计数,但是8.0.17版本的只有686条数据,超过这个数字,我们就需要己自定义一张表。

可以用做计数的临时表,查询的语句只会用help_topic计数,超出的部分其实都是脏数据。

help_topic 是数据库mysql的一个表,该表提供查询帮助主题给定关键字的详细内容(详细帮助信息)
表字段含义:

         help_topic_id:帮助主题详细信息在表记录中对应的ID(从0开始自增到686
        name:帮助主题给定的关键字名称。
        help_category_id:帮助主题类别ID,与help_category表中的help_category_id字段值相等。
        description:帮助主题的详细信息(这里就是我们通常查询帮助信息真正想看的内容,例如:告诉我们某某语句如何使用的语法与注意事项等)。
        example:帮助主题的示例信息(告诉我们语句如何使用的示例)。
        url:该帮助主题对应在MySQL官方在线手册中的URL链接地址。

 

#查询本周第一天
SELECT DATE_SUB(CURDATE(),INTERVAL WEEKDAY(CURDATE()) DAY) AS TIME

#查询本周的最后一天
SELECT DATE_SUB(CURDATE(),INTERVAL WEEKDAY(CURDATE())-6 DAY) AS TIME

#查询本月的第一天
SELECT DATE_SUB(CURDATE(),INTERVAL DAY(CURDATE())-1 DAY) AS TIME

#查询本月的最后一天
SELECT LAST_DAY(CURDATE()) AS TIME

#当前quarter的第一天:  
select concat(date_format(LAST_DAY(MAKEDATE(EXTRACT(YEAR FROM  CURDATE()),1) + interval QUARTER(CURDATE())*3-3 month),'%Y-%m-'),'01'); 
 
#当前quarter的最后一天:  
select LAST_DAY(MAKEDATE(EXTRACT(YEAR  FROM CURDATE()),1) + interval QUARTER(CURDATE())*3-1 month);

#当年第一天:
SELECT DATE_SUB(CURDATE(),INTERVAL dayofyear(now())-1 DAY);
 
#当年最后一天:
SELECT concat(YEAR(now()),'-12-31'); 

#新增一个星期
SELECT DATE_ADD(now(), INTERVAL 1 week) time

#新增一个月
SELECT DATE_ADD(now(), INTERVAL 1 month) time

#新增一个季度
SELECT DATE_ADD(now(), INTERVAL 1 quarter) time

#新增一年
SELECT DATE_ADD(now(), INTERVAL 1 year) time

查询本日,本周,本月,本年的数据

#查询本日的数据
SELECT T.* FROM buz_sampling_data T
WHERE TO_DAYS(TIME) = TO_DAYS(NOW())


#查询本周的数据
SELECT T.* FROM buz_sampling_data T
WHERE YEARWEEK(TIME,1) = YEARWEEK(NOW(),1)


#查询本月的数据
SELECT T.* FROM buz_sampling_data T
WHERE MONTH(TIME) = MONTH(NOW())


#查询本年的数据
SELECT T.* FROM buz_sampling_data T
WHERE YEAR(TIME) = YEAR(NOW())

 

需要将字符串(电脑IP)192.168.211.35(按照.进行拆分)


SELECT
    SUBSTRING_INDEX( SUBSTRING_INDEX( t.ip, '.', h.help_topic_id + 1 ), '.', - 1 )
FROM
    test.test t
    JOIN mysql.help_topic h ON h.help_topic_id < ( LENGTH( t.ip ) - LENGTH( REPLACE ( t.ip, '.', '' )) + 1 );

 SUBSTRING_INDEX(str,delim,count)函数

str: 要分割的字符串

delim: 分割符(比如逗号,和点.)

count: 计数(分割到第几个),正数表示从左向右数,负数表示从右向左数

LENGH函数 

LENGTH(str) 统计字符串的长度

REPLACE(str,from_str,to_str) 替换字符串

用to_str替换from_str得到最终的str

参数:

str:最终得到的字符串

from_str: 旧的字符(被替换的字符)

to_str: 新的字符

结果就是用新的字符替换旧的字符,得到的最终的字符串

SELECT REPLACE('192.168.211.35','.',''); -- 得到19216821135

SELECT LENGTH(REPLACE('192.168.211.35','.','')); -- 得到长度是11

遇到的问题
sql执行报错:SELECT command denied to user '###' for table 'help_topic'
SELECT命令拒绝用户 '###‘用于表’help_topic’

原因 :
mysql用户没有执行查询help_topic表的权限,需要root用户授权。
解决
用mysql的root账户执行 GRANT SELECT ON mysql.help_topic TO 'wp'@'localhost'(给用户授予mysql.help_topic的查询权限)
 

创建用户
方式1: CREATE USER 'wp'@'localhost' IDENTIFIED BY '123456';
方式2: GRANT USAGE ON *.* TO 'wp'@'localhost' IDENTIFIED BY '132456';
删除用户
DROP USER 'wp'@'localhost';
查询用户
SELECT DISTINCT CONCAT('User: ''',user,'''@''',host,''';') AS query FROM mysql.user;
用户授权
GRANT SELECT ON mysql.help_topic TO 'wp'@'localhost'
取消用户授权
REVOKE SELECT ON mysql.help_topic FROM 'wp'@'localhost';
查询用户授权
SHOW GRANTS FOR 'wp'@'localhost';


 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/116635.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

微服务洞察,让微服务更透明

作者&#xff1a; 屿山 微服务作为云原生时代下一种开发软件的架构和组织方法&#xff0c;通过将明确定义的功能分成更小的服务&#xff0c;并让每个服务独立迭代&#xff0c;增加了应用程序的灵活性&#xff0c;允许开发者根据需要更轻松地更改部分应用程序。同时每个微服务可…

想不起来的python知识点(应该后续还会再补充)

目录数据类型Number随机生成一个[0,1)范围的实数随机生成一个[1,20)范围内的整数补String(字符串)字符串连接使用join运算符List&#xff08;列表&#xff09;由于没有书&#xff0c;利用博客对于Python的学习内容进行简要的记录&#xff01;&#xff08;应该是菁&#xff08;j…

基于声网 Flat 构建白板插件应用“成语解谜”的最佳实践

前言 本文作者赵杭天。他参加了“2022 RTE 编程挑战赛”——“赛道二 场景化白板插件应用开发” &#xff0c; 并凭借作品“成语解谜”获得了该赛道大奖。“成语解谜”是一个基于互动白板 SDK 的互动小游戏应用。通过前端编码、调用白板 API 能力、定制化后端逻辑等&#xff0…

刷题记录:牛客NC17509挖沟[prim+kruskal算法详解]

传送门:牛客 题目描述: 胡队长带领HA实验的战士们玩真人CS&#xff0c;真人CS的地图由一些据点组成&#xff0c;现在胡队长已经占领了n个据点&#xff0c;为了方 便&#xff0c;将他们编号为1-n&#xff0c;为了隐蔽&#xff0c;胡队长命令战士们在每个据点出挖一个坑&#x…

Cocos Creator 3.61所有工具软件的使用

文章目录Tiled-地图绘制软件下载安装基本使用点点就会了导入cocos编辑动画注意cocos导入TiledBigShear-图片裁剪为plist形式下载安装使用TexturePacker-使用plist文件产生精灵图集下载安装Tiled-地图绘制软件 下载安装 官网免费 Tiled官方 安装无要求 基本使用 点点就会了 导…

UE5 Meerkat狐獴演示Demo分析

1.特效的生成方式 1.1临时特效的生成&#xff1a;使用了已生成轨道临时创建该特效&#xff08;不用在场景中放入该特效&#xff0c;而是临时创建即可&#xff09;、系统生命周期轨道设置该特效的播放时长 1.2长期特效的生成&#xff1a;特效时长为该镜头片段长度 2.特效的类…

软考高级哪个好考?

软考高级有5个科目。 开发方向的有系统分析师&#xff0c;系统架构师&#xff1b; 网络方向的有网络规划与设计师&#xff1b; 信息系统方向的有信息系统项目管理师&#xff1b; 信息化服务方向的有系统规划与管理师。 考试题型 上午是9:00 — 11:30考综合知识&#xff0c;…

ROBOGUIDE软件:FANUC机器人多层堆焊功能介绍与示教编程操作方法

目录 机器人多层堆焊功能介绍 机器人跟踪路径数据指令介绍 机器人多层堆焊指令介绍 机器人弧焊焊接工作站创建 机器人多层堆焊示教编程 仿真运行 机器人多层堆焊功能介绍 在厚板焊接中进行多层堆焊焊接&#xff0c;以便多次焊接相同的部位而增大焊接宽度。通常情况下&am…

Java池化技术

在我们平常的编码中&#xff0c;通常会将一些对象保存起来&#xff0c;这主要考虑的是对象的创建成本。比如像线程资源、数据库连接资源或者 TCP 连接等&#xff0c;这类对象的初始化通常要花费比较长的时间&#xff0c;如果频繁地申请和销毁&#xff0c;就会耗费大量的系统资源…

Java-String 类·上

Java-String 类上1. 创建字符串2. 字符串比较相等3. 字符串常量池4. 理解字符串不可变大家好&#xff0c;我是晓星航。今天为大家带来的是Java String字符串相关知识点的讲解&#xff01;&#x1f600; 1. 创建字符串 常见的构造 String 的方式 // 方式一 String str "…

轻量化网络ShuffleNet 旷视

CVPR2018 人脸识别 脸部特效 张翔宇 什么是分组卷积 我们可以回忆一下 普通卷积 feature map有几个 我们的对应的卷积核就需要几个channel 然后我们学习这个 分组卷积 如图所示&#xff0c;前两个channel 有一个2个channel的卷积核负责&#xff0c;两个与两个对应 来自这…

学习.NET MAUI Blazor(四)、路由

Web应用程序的可以通过URL将多个页面串联起来&#xff0c;并且可以互相跳转。Web应用主要是使用a标签或者是服务端redirect来跳转。而现在流行的单页应用程序 (SPA) &#xff0c;则通过路由&#xff08;Router&#xff09;来实现跳转&#xff0c;如Vue 、React等。 提示 MAUI的…

C#一个网络小程序的逐步实现过程

经常要检测某些IP地址范围段的计算机是否在线。 有很多的方法&#xff0c;比如进入到网关的交换机上去查询、使用现成的工具或者编写一个简单的DOS脚本等等&#xff0c;这些都比较容易实现。 现在使用C#来完成。 1、简单上手 公用函数&#xff1a; public static long IPToLong…

传奇服务器容易受到什么攻击,怎么防御攻击?

有兄弟问明杰&#xff0c;说自己打算开服&#xff0c;听说攻击挺多的&#xff0c;就是想先了解一下开传奇用的服务器最容易受到什么类型的攻击&#xff0c;如果遇到了又改怎么防御呢&#xff1f;带着这个问题&#xff0c;明杰跟大家详细的说一下&#xff0c;常见的开区时候遇到…

Max Sum Plus Plus(DP 滚动数组优化)[HDU - 1024]

题目如下&#xff1a; 题目链接 Max Sum Plus Plus 题解 or 思路&#xff1a; 经典的动态规划问题 dp[i][j]dp[i][j]dp[i][j], 前 jjj 个物品&#xff0c; 我们分成题目要求的 iii 组 对于第 jjj 个物品&#xff0c; 我们可以将它分到 第 kkk 组中&#xff0c; 或者分到新的一…

前端八股文——笔试题

目录 前言 一、flex布局手写题目 二、移动端点击事件为什么有延迟&#xff1f;时间多久&#xff1f;如何解决这个问题&#xff1f; 1.meta标签里面content属性&#xff0c;设置禁止缩放。 2.设置默认宽度为浏览器宽度。 3.设置touch-action&#xff1a;manipulation。 4…

Chat-GPT从注册到搬进服务器

首先&#xff0c;我们要明白的一个事实是&#xff0c;不可能免费的成功搞定&#xff0c;得付出10几块得成本&#xff0c;我这个方法满打满算16块钱&#xff08;是不犯错得情况下&#xff0c;实际上我用了30多了&#xff09; 1.10元买个香港的服务器 不一定是香港的&#xff0c…

Day 04-Composition API_ref reactive 函数

1.ref函数 作用: 定义一个响应式的数据&#xff1b; 语法: const xxx ref(initValue) 创建一个包含响应式数据的引用对象&#xff08;reference对象&#xff0c;简称ref对象&#xff09;。 JS中操作数据&#xff1a; xxx.value 模板中读取数据: 不需要.value&#xff0c;直…

永恒之蓝(MS17-010)

目录追溯了解网络IP查找环境条件复现流程445端口使用MSF的永恒之蓝漏洞模块扫描模块攻击模块温馨提醒&#xff1a;纯水文&#xff0c;如果不幸翻到这篇文章&#xff0c;可以立刻关闭&#xff01; 先整理两个学习的链接&#xff08;本文学习第一个&#xff09;&#xff1a; htt…

JDK19都出来了~是时候梳理清楚JDK的各个版本的特性了【JDK17特性讲解】

JDK各个版本特性讲解-JDK17特性 一、JAVA17概述 JDK 16 刚发布半年&#xff08;2021/03/16&#xff09;&#xff0c;JDK 17 又如期而至&#xff08;2021/09/14&#xff09;&#xff0c;这个时间点特殊&#xff0c;蹭苹果发布会的热度&#xff1f;记得当年 JDK 15 的发布也是同天…