mysql 批量查询插入,MySQL批量插入查询出来的数据

mysql 批量查询插入,MySQL批量插入查询出来的数据timg.jpg先看SQL:INSERTINTO`movie_detail_tab`(VIDEO_ID,PLAY_URL)SELECTb.IDASVIDEO_ID,x.playurlASPLAY_URLFROM(SELECTa.playurl,CONCAT(a.`卡通名`,a.`第几集`)AS’videoCname’FROM(SELECTplayurl,SUBSTRING_I…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

36771159b386

timg.jpg

先看SQL:

INSERT INTO `movie_detail_tab` (VIDEO_ID, PLAY_URL) SELECT

b.ID AS VIDEO_ID,

x.playurl AS PLAY_URL

FROM

(

SELECT

a.playurl,

CONCAT(

a.`卡通名`,

a.`第几集`

) AS ‘videoCname’

FROM

(

SELECT

playurl,

SUBSTRING_INDEX(sname, ‘ ‘, 1) AS ‘卡通名’,

IF (

SUBSTRING_INDEX(sname, ‘ ‘ ,- 1) < 10,

CONCAT(

0,

SUBSTRING_INDEX(sname, ‘ ‘ ,- 1)

),

SUBSTRING_INDEX(sname, ‘ ‘ ,- 1)

) AS ‘第几集’

FROM

`movie_tab`

) a

) x

INNER JOIN `video_detail_tab` b ON x.videoCname = b.VIDEO_CNAME

WHERE

x.playurl NOT IN (

SELECT

c.PLAY_URL

FROM

`movie_detail_tab` c

);

涉及三个表:

1. movie_detail_tab

id

VIDEO_ID

PLAY_URL

1

152

09f5280806d0fbab9fcc3c7f2ce37cc8

2

153

d9c427446ca5aeceb5c0d7f310858373

2. movie_tab

id

sname

playurl

1

海贼王 1

98aed93a41bd4fe07f5824420511674c

2

海贼王 2

598ce51cb2be1edbbc3dd2ce32a8af47

3. movie_detail_tab

id

VIDEO_CNAME

1

海贼王01

2

海贼王02

要实现批量插入不重复的movie_tab中的playurl以及对应movie_detail_tab中的id到movie_detail_tab

主要问题:

movie_tab里的sname卡通名和集数之间有空格

movie_detail_tab里的VIDEO_CNAME小于10的集数有数字0,比如01集

主要通过三个MySQL函数解决

1. SUBSTRING_INDEX(str,delim,count)

str:要处理的字符串

delim:分隔符

count:计数

返回从字符串str分隔符delim中的计数发生前的子字符串。 如果计数是正的,则返回一切到最终定界符(从左边算起)的左侧。如果count为负,则返回一切到最后一个分隔符(右算起)的右侧。SUBSTRING_INDEX() 搜索delim时进行区分大小写的匹配。

2. IF()

在MySQL中IF()函数的用法类似于java中的三目运算符

IF(expr1,expr2,expr3),如果expr1的值为true,则返回expr2的值,如果expr1的值为false,则返回expr3的值。

3. CONCAT()

CONCAT(str1,str2,…)

返回结果为连接参数产生的字符串。如有任何一个参数为NULL ,则返回值为 NULL。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/185602.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Qt高并发

    Qt高并发QThread是一个低级(low-level)类,适合用于显式地构建长期运行的线程。     QtConcurrent是一个命名空间,提供了用于编写并发软件的更高层次的类和算法。该命名空间中有一个重要的类,QThreadPool,这是一个管理线程池的类。每个Qt应用程序都有一个QThreadPool::globalInstance()函数,它带有一个推荐的最大线程数,在大多数系统上,处理核的数…

    2022年5月28日
    116
  • 理解group by[通俗易懂]

    理解group by[通俗易懂]先来看下表1,表名为test: 表1  执行如下SQL语句: 1 2 SELECT name FROM test GROUP BY name   你应该很容易知道运行的结果,没错,就是下表2: 表2  可是为了能够更好的理解“groupby”多个列“和”聚合函数“的应用,我建议在思考的过程中,由表1到表2的过程中…

    2022年5月26日
    30
  • 风控模型评估方法以及大数据风控模型概念

    风控模型评估方法以及大数据风控模型概念更新一下有效性指标中的区分能力指标:KS(Kolmogorov-Smirnov):KS用于模型风险区分能力进行评估,指标衡量的是好坏样本累计分部之间的差值。好坏样本累计差异越大,KS指标越大,那么模型的风险区分能力越强。KS的计算步骤如下:1.计算每个评分区间的好坏账户数。2.计算每个评分区间的累计好账户数占总好账户数比率(good%)和累计坏账户数占总坏账户数比率(bad%

    2022年6月3日
    41
  • Android Log日志

    Android Log日志

    2021年6月18日
    97
  • 补码的加减法运算_简述补码减法运算的规则

    补码的加减法运算_简述补码减法运算的规则补码的加减法运算本文内容参考自王达老师的《深入理解计算机网络》一书&lt;中国水利水电出版社&gt;一、补码加法:1、补码的加法运算两个机器数相加的补码可以先通过分别对两个机器数求补码,然后再相加得到,在采用补码形式表示时,进行加法运算可以把符号位和数值位一起进行运算(若符号位有进位,导致了益出,则直接舍弃),结果为两数之和的补码形式。示例1:求两个十进制数的和35+18。首先,规…

    2025年11月12日
    3
  • 孙鑫java基础视频教程_孙鑫老师JAVA无难事视频教程 最适合java入门学习打基础的课程 附源码讲义 12课…

    孙鑫java基础视频教程_孙鑫老师JAVA无难事视频教程 最适合java入门学习打基础的课程 附源码讲义 12课…课程介绍由孙鑫老师亲自授课录制。内容涵盖面广,从入门到精通,授课通俗易懂,分析问题独到精辟,学员通过本套光盘的学习,能够快速掌握Java编程语言,成为Java高手。由孙鑫老师亲自授课录制。内容涵盖面广,从入门到精通,授课通俗易懂,分析问题独到精辟,学员通过本套光盘的学习,能够快速掌握Java编程语言,成为Java高手。从自学者很难弄明白的Java环境配置开始讲解,一步步引领你成为Java高手。2、…

    2022年5月13日
    55

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号