Mysql查询结果作为另一张表的更新内容

1、将查询结果中有用的数据用分隔符获取,更新到另一张表。

DELIMITER $$
DROP FUNCTION IF EXISTS `func_splitString` $$
CREATE FUNCTION `func_splitString`
( f_string VARCHAR(1000),f_delimiter VARCHAR(5),f_order INT)
  RETURNS VARCHAR(255) CHARSET utf8
BEGIN
    DECLARE result VARCHAR(255) DEFAULT ‘‘;
    SET result = REVERSE(SUBSTRING_INDEX(REVERSE(SUBSTRING_INDEX(f_string,f_delimiter,f_order)),f_delimiter,1));
    RETURN result;
END$$  

//更新表字段3min_document:cover_id int
//查询表字段3min_document_video:video string (内容类似:xxxxxxx|12)
UPDATE 3min_document d INNER JOIN 3min_document_video v ON d.id=v.id
SET d.cover_id=func_splitString(v.video,‘|‘,2);
时间: 2024-10-25 00:59:04

Mysql查询结果作为另一张表的更新内容的相关文章

查询MySQL中某个数据库中有多少张表

SELECT COUNT(*) TABLES, table_schema FROM information_schema.TABLES   WHERE table_schema = '数据库' GROUP BY table_schema; 这还是头一次接触information_schema这个数据库, information_schema数据库是MySQL自带的,它提供了访问数据库元数据的方式.什么是元数据呢?元数据是关于数据的数据,如数据库名或表名,列的数据类型,或访问权限等.有些时候用于表

Ajax案例:三级联动查询员工的信息(三张表进行内连接)

需求分析: 通过数据库连接池,可以查询到数据库中员工的各种信息,通过点击下拉框的方式实现三级联动,即:没有点击city下拉框,后面两个下拉框中没有值,这样,点击city下拉框,department下拉框中才有值,点击department下拉框后employee下拉框中才有值,才可以进行选择,不可以跨级点击:点击最后一个下拉框可以将员工的id,last_name,email,salary,显示在下面的表格中: 实现上述功能的方法: 1.c3p0数据库连接池,实现数据库的链接:JdbcUtils类,

mysql 和 sqlserver中备份一张表的区别

sqlserver中备份一张表 SELECT * into qa_buglist_bak FROM qa_buglist 不管表的数据有多大,速度很快: mysql中上述语句就无效了,须得新建一张表,然后让此长表中新增数据 create table qa_buglist_bak like qa_buglist;insert qa_buglist_bak select * from qa_buglist; 如果原表中数据量大,就特别慢,很吃硬盘和CPU 刚刚看了下,也就800万行的数据.. 我应该

(10)MySQL触发器(同时操作两张表)

什么是触发器 触发器是与表有关的数据库对象,在满足定义条件时触发,并执行触发器中定义的语句集合.触发器的这种特性可以协助应用在数据库端确保数据的完整性. 举个例子,比如你现在有两个表[用户表]和[日志表],当一个用户被创建的时候,就需要在日志表中插入创建的log日志,如果在不使用触发器的情况下,你需要编写程序语言逻辑才能实现,但是如果你定义了一个触发器,触发器的作用就是当你在用户表中插入一条数据的之后帮你在日志表中插入一条日志信息.当然触发器并不是只能进行插入操作,还能执行修改,删除 触发器的事

mysql 从相同类型的多张表中提取到一张表中

蜗牛背着沉重的壳,贴着地面一步步艰难地向前爬行,不回头,也不左顾右盼,只是朝着自己想到达的地方行进. 有时候需要从多张相同类型的表中提取数据,这些表有一些相同的列或者表结构完全相同,同时表名存在一定的规律,如果表数量少还好,如果表数量多的话则会比较繁琐.可以通过存储过程将多张表的数据提取到一张表的方法来降低工作量. 先创建测试表并生成测试数据.以下存储过程创建10张测试表,每张表生成10条测试数据.drop PROCEDURE if EXISTS create10tables;create PR

MySQL 两张表关联更新(用一个表的数据更新另一个表的数据)

有两张表,info1, info2 . info1: info2: 现在,要用info2中的数据更新info1中对应的学生信息,sql语句如下: UPDATE info1 t1 JOIN info2 t2 ON t1.name = t2.name SET t1.age = t2.age, t1.class = t2.class; 运行结果如下: 更新过的info1: 至于效率问题,之前我有三张表,都在40万左右.需要将 table2 中的两个字段(step1),table3 中的一个字段(ste

[Mysql]备份同库中一张表的历史记录 insert into ..select

需求 如今有个这么一个需求.mysql中有个表.数据增长的非常快.可是呢这个数据有效期也就是1个月,一个月曾经的记录不太重要了,可是又不能删除.为了保证这个表的查询速度,须要一个简单的备份表,把数据倒进去. 代码 于是我写了一个小脚本,用来做定时任务.把这个表某段时间的数据备份到备份表中.核心就是个简单的sql. 原始表radius 备份的表为 radius2015 #!/usr/bin/python2.7 # -*- coding: utf-8 -*- #python2.7x #authror

oracle查询一个数据库有几张表

登录sys用户后通过user_tables表查看当前用户下表的张数.sql:conn / as sysdba;sql:select count(*) from user_tables ;解释:必须是登录到系统的超级用户后后,通过上面sql读取出"用户表"中记录的行数(每个表会有一条记录),即为当前数据库下的表张数.

mysql 查询的字段来自多个表时的笛卡尔现象和解决不同表同名问题

#会发生笛卡尔乘积现象,表1 m行,表2 n行,结果为mn行,原因是没有有效的连接条件 SELECT NAME,boyName FROM beauty,boys; #解决笛卡尔现象和不同表同名字段问题 SELECT NAME, boyName FROM beauty, boys WHERE beauty.boyfriend_id=boys.id; 原文地址:https://blog.51cto.com/14437184/2437017