mysql 字符串的拆分之 substring_index()函数

语法

substring_index(string,delimiter,number)

string : 要分隔的字符串。

delimiter : 分隔符

number  :分隔符位置

注意

  • number  可以为正数,也可以为负数。

             正数时是指的是从左向右数,第 number 个分隔符左边的所有内容。

            负数时,指的是从右往左数,第 number 个分隔符右边的所有内容。

  • 当 number 的绝对值 大于 delimiter 的个数时,会将 string 全部输出
  • 个人理解(欢迎指正)

栗子

修复串列了的记录_牛客题霸_牛客网 (nowcoder.com)

描述

现有试卷信息表examination_info(exam_id试卷ID, tag试卷类别, difficulty试卷难度, duration考试时长, release_time发布时间):

idexam_idtagdifficultydurationrelease_time
19001算法hard602021-01-01 10:00:00
29002算法hard802021-01-01 10:00:00
39003SQLmedium702021-01-01 10:00:00
49004算法,medium,8002021-01-01 10:00:00

录题同学有一次手误将部分记录的试题类别tag、难度、时长同时录入到了tag字段,请帮忙找出这些录错了的记录,并拆分后按正确的列类型输出。

由示例数据结果输出如下:

exam_idtagdifficultyduration
9004

算法

medium80

建表语句:

drop table if exists examination_info,exam_record;
CREATE TABLE examination_info (id int PRIMARY KEY AUTO_INCREMENT COMMENT '自增ID',exam_id int UNIQUE NOT NULL COMMENT '试卷ID',tag varchar(32) COMMENT '类别标签',difficulty varchar(8) COMMENT '难度',duration int NOT NULL COMMENT '时长',release_time datetime COMMENT '发布时间'
)CHARACTER SET utf8 COLLATE utf8_general_ci;INSERT INTO examination_info(exam_id,tag,difficulty,duration,release_time) VALUES(9001, '算法', 'hard', 60, '2020-01-01 10:00:00'),(9002, '算法', 'hard', 80, '2020-01-01 10:00:00'),(9003, 'SQL', 'medium', 70, '2020-01-01 10:00:00'),(9004, '算法,medium,80','', 0, '2020-01-01 10:00:00');

题解:

select  exam_id,substring_index(tag,',',1) as tag,substring_index(substring_index(tag,',',2),',',-1)as difficuty,cast(substring_index(tag,',',-1) as  DECIMAL) as duration
from examination_info
where tag like '%,%' ;select  exam_id,substring_index(tag,',',2) as difficutyfrom examination_info
where tag like '%,%' ;

关于 cast()  的使用     Mysql 数据类型的转换之 cast()-CSDN博客

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

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

相关文章

大唐杯学习笔记:Day3

1.1 SA组网和NSA组网 SA组网(非独立组网)是指使能5G网络不需要其他移动通信系统的辅助,可以独立进行工作。NSA组网(独立组网)是指使能5G网络需要其他移动通信系统的辅助,如果辅助缺失,那么5G网络不可以独立进行工作,通常而言5G网络建设阶段,NSA组网方式是在表明5G网络的使用需…

奔跑吧,前端er!前端五大方向技能罗列,webGL、AI、桌面、游戏

经常看到头条上前端们争论各种框架的优劣,然后相互争吵不休,其实技术也好,框架也好,都是服务于项目需求的,争论的铁子们都站在自己的项目角度来品评工具,肯定是公说公有理婆说婆有理啦。 技术和框架是中性的…

编程之美_目录

编程之美 0)0_0_常用函数库 0)0_1_测试函数总结 1)1.1 数据结构之 数组 2)1.2 数据结构之 字符串 3)1.3 数据结构之 链表 4)1.4 数据结构之 队列 5)1.5 数据结构之 栈 5)1.6 …

【latex】\IEEEpubid版权声明与正文内容重叠

问题描述 撰写IEEE Trans论文时,出现版权声明文字\IEEEpubid与正文内容重叠的问题: 原因分析: 在使用模板时,不小心将以下命令删除了: \IEEEpubidadjcol 解决方案: 在需要换页的位置附近添加以上命令&…

在Jupyter-lab中使用RDKit画分子2D图

在Jupyter-lab中使用RDKit画分子2D图 在做完分子对接后,想看看筛选后的分子的结构。因此想利用Jupyter-lab来画分子的2D图。 1. 安装Jupyter-lab与RDKit 系统:Win11已安装conda RDKit 是一个功能强大、灵活易用的化学信息学工具包,广泛应…

w30使用python调用shell脚本

使用python脚本去实现永恒之蓝漏洞攻击 实验环境 攻击工具:pythonmsfconsole 靶场:win7 和 kali实验目的 演示python脚本调用过程 实验步骤 1.写一个永恒之蓝的攻击脚本,定义为blue.rc use exploit/windows/smb/ms17_010_eternalblue …

Spark(2)-基础tranform算子(一)

一、算子列表 编号名称1map算子2flatMap算子3filter算子4mapPartitions算子5mapPartitionsWithIndex算子6keys算子7values算子8mapValues算子9flatMaplValues算子10union算子11reducedByKey算子12combineByKey算子13groupByKey算子14foldByKey算子15aggregateByKey算子16Shuff…

深度学习工具之tokens计算器

1.什么是Token Token是GPT处理文本的基本单位。Token可以是一个字、一个词语或特定语言中的一个字符。它们负责将输入的文本数据转换为 GPT 可以处理的数据格式。每个 GPT 模型都有一个预设的最大 Tokens 数量,例如,GPT-3 每次调用允许处理的最大 Token…

韦东山嵌入式Liunx入门驱动开发五

文章目录 一、驱动程序基石1-1 休眠与唤醒1-2 POLL机制1-3 异步通知(1) 异步通知程序解析(2) 异步通知机制内核代码详解 1-4 阻塞与非阻塞1-5 定时器(1) 内核函数(2) 定时器时间单位 1-6 中断下半部 tasklet 本人学习完韦老师的视频,因此来复习巩固,写以…

华为OD技术面试案例7-2024年

记录一下我面试od的面试过程. 1、第一个是hr电话面试, 其实也就是od的hr致电, 简单了解一下个人情况, 问我要一些个人信息, 这块没啥问题; 2、第二个就是机考了, 根据我提供的信息, od的hr给我发了一个机考的链接, 并告诉我7天内有效, 可以在考试之前先刷刷题, 刷题地址参考…

《幻兽帕鲁》游戏对服务器性能的具体要求是什么?

《幻兽帕鲁》游戏对服务器性能的具体要求是什么? CPU:官方最低要求为i5-3570K,但在多人游玩时可能会有明显卡顿。此外,还有建议选择4核或更高性能的处理器,以确保游戏运行流畅。 内存:对于不同人数的联机&…

超越想象:人工智能的奇迹与可能性

超越想象:人工智能的奇迹与可能性 人工智能(Artificial Intelligence,AI)作为当今科技领域的热门话题,其奇迹和可能性正在不断被揭示和拓展,超越了人们的想象。从智能机器人到自动驾驶汽车,从语…

苹果ios群控软件开发常用源代码分享!

在移动软件开发领域,苹果设备由于其封闭性和安全性受到了广大开发者的青睐,然而,这也为开发者带来了一些挑战,特别是在进行群控软件开发时。 群控软件是指可以同时控制多台设备的软件,这在自动化测试、批量操作等场景…

数据要素:数字化转型中的新“金矿”及其发展潜力

作为一名在数字化转型项目中摸爬滚打的实践者,我们见证了数据从简单的信息处理工具逐渐演变为驱动经济社会发展的关键要素。近日,多部门联合发布的《“数据要素”三年行动计划(2024—2026年)》更是将数据要素的重要性提升到了新的…

C++ //练习 10.15 编写一个lambda,捕获它所在函数的int,并接受一个int参数。lambda应该返回捕获的int和int参数的和。

C Primer(第5版) 练习 10.15 练习 10.15 编写一个lambda,捕获它所在函数的int,并接受一个int参数。lambda应该返回捕获的int和int参数的和。 环境:Linux Ubuntu(云服务器) 工具:v…

Linux:进入vim编辑模式

vim 是一个强大的文本编辑器。 三种模式: 普通模式(Normal mode) 插入模式(Insert mode) 命令行模式(Command-line mode) 当你打开一个文件时,vim 默认处于普通模式。 插入模式&a…

十六、异常和File

异常和File 一、异常1.1异常的分类1.2 异常的作用1.3 异常的处理方式1.3.1 JVM默认的处理方式1.3.2 自己处理(捕获异常)1.3.3 自己处理(灵魂四问) 1.4 异常中的常见方法1.5 抛出异常综合练习(键盘录入数据)…

基于springboot+vue的社区养老服务平台

博主主页:猫头鹰源码 博主简介:Java领域优质创作者、CSDN博客专家、阿里云专家博主、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战,欢迎高校老师\讲师\同行交流合作 ​主要内容:毕业设计(Javaweb项目|小程序|Pyt…

黑马点评-商户查询业务

缓存原理 本文的业务就是redis的经典应用,标准的操作方式就是查询数据库之前先查询缓存,如果缓存数据存在,则直接从缓存中返回,如果缓存数据不存在,再查询数据库,然后将数据存入redis。 缓存更新策略 根据…

Spring重点记录

文章目录 1.Spring的组成2.Spring优点3.IOC理论推导4.IOC本质5.IOC实现:xml或者注解或者自动装配(零配置)。6.hellospring6.1beans.xml的结构为:6.2.Spring容器6.3对象的创建和控制反转 7.IOC创建对象方式7.1以有参构造的方式创建…