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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 简单说说USB协议(一)[通俗易懂]

    简单说说USB协议(一)[通俗易懂]USB,通用串行总线,是一种计算机与外围设备进行数据交互的通信协议。任何东西的出现都是有理可循的,在以前计算机刚兴起的时候,要连接一个新的设备,需要断电关闭计算机,连接好设备,配置好硬件,再上电运行,这个过程相当费时费力,为了能拥有随意接入设备这种热拔插特性,USB总线协议应运而生。USB总线如今已经有USB1.0、USB1.1、USB2.0、USB3.0。USB协议采用主从工作模式,…

    2022年6月17日
    38
  • 状态模式state_迭代器模式

    状态模式state_迭代器模式状态模式 State动机模式定义实例结构要点总结笔记动机在软件构建过程中,某些对象的状态如果改变,其行为也会随之而发生变化,比如文档处于只读状态,其支持的行为和读写状态支持的行为就可能不同.如何在运行时根据对象的状态来透明地更改对象的行为?而不会为对象操作和状态转换之间引入紧耦合模式定义允许一个对象在其内部状态改变时改变它的行为.从而使对象看起来似乎修改了其行为.从而使对象看起来似乎修改了其行为.从而使对象看起来似乎修改了其行为.实例朴素根据状态来执行下一步enum NetworkStat

    2022年8月11日
    2
  • Linux常用命令总结(mysql数据库常用命令)

    熬夜爆肝Linux集合,还不收藏?

    2022年4月16日
    75
  • Windows环境安装ActiveMQ,Stomp扩展

    Windows环境安装ActiveMQ,Stomp扩展

    2022年3月13日
    38
  • 第三单元 用python学习微积分(二十)壳层法、圆盘法求体积 (下)

    第三单元 用python学习微积分(二十)壳层法、圆盘法求体积 (下)本文内容来自于学习麻省理工学院公开课:单变量微积分-壳层法、圆盘法求体积-网易公开课一、切片法球体积(继续建立积分的思想)​如图,红色切片部分的体积这个式子取极限,则有全部面积为二、旋转立方体(solidsofrevolution)圆盘法介绍:老师先画了一条x轴上方曲线,看着像sinx,之后出题,这个曲线绕x轴一周形成一个椭圆,可以猜想,当对这个椭圆切片,可以得到一个⚪,因为图形绕x轴旋转不会改变函数值到x轴的距离,而这个距离就是这个⚪的半径。于.

    2022年6月7日
    36
  • vue父组件向子组件传值与传递方法「建议收藏」

    vue父组件向子组件传值与传递方法学习笔记1、父组件向子组件传值(props)在子组件中,默认是无法访问到父组件中的data上的数据和methods中的方法父组件可以在引用子组件的时候,通过属性绑定v-bind传递,子组件调用通过子组件属性props定义2、父组件向子组件传递方法(this.$emit())1、在子组件内通过绑定事件机制:@自定义方法名=“父组件方法名”2、子组件方法中,通过this.emit(“自定义方法名”),触发3、子组件调用方法myclick总结:1、父组

    2022年4月6日
    425

发表回复

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

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