`

mysql查询,更新(text类型),删除关联操作

阅读更多

注意:mysql中不支持全关联,支持左外,右外关联,oracle支持全关联查询

1.今天做了这么一个需求,简单抽离说明一下:操作表:biz_pu_arrival_detail 关联表:ba_inventory

需求是将 关联表中的 propertyId 赋值给 操作表中的propertyId,关联条件是操作表中的 inventoryId字段和关联表中的id 关联。

错误解答:开始写的sql是这样的:

UPDATE  (SELECT detail.id,detail.propertyId,ba.propertyId AS pid FROM biz_pu_arrival_detail detail JOIN ba_inventory ba ON detail.inventoryId = ba.id WHERE detail.`propertyId` IS NULL AND  detail.orgid =4967219392022528) a SET a.propertyId = a.pid ;

因为 update table t set t.oldName = t.newName 是可以执行的;

但是执行结果报The target table a of the UPDATE is not updatable,原因是不能对虚拟视图做操作,update数据需要对物理表操作;

正确解答:

UPDATE biz_pu_arrival_detail detail

  JOIN ba_inventory ba ON ba.orgId = detail.orgId AND detail.inventoryId = ba.id

SET detail.propertyId = ba.propertyId

WHERE detail.`propertyId` IS NULL  AND  detail.orgid =4967219392022528;

知识点:关联语句不仅仅只有关联查询,还可以关联更新,同样可以关联删除操作,之前只知道可以关联查询,特此记录

2.具体关联形式

 2.1 双等号关联

select  a.*,b.* from a,b where a.pid = b.pid

 2.2 外关联(左外关联,右外关联,全外关联)

select a.*,b.* from a

 left(right,full)(outer )join b on a.pid = b.pid 

where a.name is not null ...

左外和右外关联 只是主表不同,在 a,b表中有对应不上的数据时,如果左外关联 那么会把a 中的所有数据查询,b表中没有对应的关联数据时,为null,右外关联相反,全外关联 是左外和右外的和

 

 2.3 内关联

select a.* ,b.* from a join b on a.pid =b.pid 

或者 select a.*, b.* from a inner join b on a.pid = b.pid;

 

3关联删除操作:

delete detail, voucher

        from biz_st_rdrecord_detail detail

          inner join biz_st_rdrecord voucher on voucher.orgId = detail.orgId

                                            and voucher.id = detail.voucherId

        where detail.orgId = #{orgId}

          and voucher.sourceVoucherTypeId in (1000030008, 1000030009);

 

加个塞!!!!

之前做了一个需要更新大字段text类型的字段内容,内容用于关键字匹配用,现在需要增加关键字了,如何更新,这里因为数据库不止一个,需要写升级脚本,同时执行

 正常字段的update:update table set column1 = '' where id = 123;

道理一样text更新内容:update table set keyStr = concat(keyStr,'abc',' def') where id = 123;

分享到:
评论

相关推荐

    0.2 MySQL表操作及数据类型

    MySQL表操作及数据类型 MySQL是当前最流行的关系型数据库管理系统之一,广泛应用于各种行业和领域。在数据库设计中,了解MySQL表操作及数据类型是非常重要的。本节将详细介绍MySQL表操作及数据类型。 表操作 在...

    mysql语句集合包括模糊查询索引函数

    SQL语句是与MySQL交互的基础,用于创建、更新、查询和管理数据库。在这个“mysql语句集合包括模糊查询索引函数”中,我们将深入探讨SQL中的关键概念,特别是与模糊查询、索引和函数相关的知识。 首先,SQL语句主要...

    mysql中文参考手册及基础教程

    例如,`CREATE DATABASE`用于创建新的数据库,`USE`用于选择要操作的数据库,`CREATE TABLE`用于创建新表,`INSERT INTO`用于插入数据,`SELECT`用于查询数据,`UPDATE`用于更新数据,而`DELETE`用于删除数据。...

    mysql基础知识和mysql优化整理

    3. SQL语言:SQL(结构化查询语言)是操作MySQL的核心工具,包括SELECT(查询数据)、INSERT(插入数据)、UPDATE(更新数据)、DELETE(删除数据)等语句。 4. 关系模型:MySQL基于关系数据库模型,强调数据之间的...

    MySQL的数据类型和建库策略.rar

    MySQL提供了多种数据类型,包括数值类型(如整数INT、浮点数FLOAT、双精度DOUBEL)、字符串类型(如CHAR、VARCHAR、TEXT)、日期和时间类型(如DATE、TIME、DATETIME、TIMESTAMP)以及二进制类型(BLOB、VARBINARY)...

    mysql操作指南详细列表

    - 触发器:自动执行特定操作,如在数据更改时更新关联表。 - 存储过程:封装一组SQL语句,简化复杂操作。 - 视图:虚拟表,提供定制化的数据视图。 通过以上内容,你可以对MySQL有一个全面的认识,从基础操作到...

    MySQL数据库课堂笔记 + MySQL-DEMO

    2. **SQL语言**:包括SQL的四大基本操作——SELECT(查询)、INSERT(插入)、UPDATE(更新)和DELETE(删除)。详细讲解如何创建、修改和删除数据表。 3. **数据类型**:如INT、VARCHAR、DATE等,以及它们在不同...

    Mysql笔记和常用操作汇总

    这篇笔记和操作汇总将深入探讨MySQL的基本概念、安装与配置、数据类型、表的创建与管理、查询操作、事务处理、索引、视图、存储过程以及备份与恢复等关键知识点。 一、基本概念 1. 数据库:存储数据的容器,由一...

    Mysql速查手册HandBood系列(By FengGe整理)

    3. 数据类型:MySQL支持多种数据类型,如数值类型(INT、FLOAT、DECIMAL)、字符串类型(VARCHAR、TEXT)、日期时间类型(DATE、TIME、DATETIME)等。 二、数据库管理 1. 创建与删除:使用CREATE DATABASE语句创建...

    MYSQL培训经典教程

    MySQL支持多种数据类型,如数值类型(整数、浮点数)、字符串类型(CHAR、VARCHAR、TEXT)、日期和时间类型(DATE、TIME、DATETIME、TIMESTAMP)等。了解这些数据类型有助于正确设计数据库表结构。 四、创建与管理...

    mysql数据库的基本操作语法

    级联删除:删除主表的数据时,关联的从表数据也删除,则需要在建立外键约束的后面增加on deletecascade 或on delete set null,前者是级联删除,后者是将从表的关联列的值设置为null。 create table student( id int...

    MySql从零开始学-必知必会

    3. SQL语言:掌握SQL(Structured Query Language)的基本语法,如CREATE DATABASE和USE语句创建与选择数据库,CREATE TABLE用于定义表结构,INSERT INTO插入数据,SELECT查询数据,UPDATE更新记录,DELETE删除记录...

    MySQL学习笔记(HTML版)

    通过这个命令行工具,用户可以连接到MySQL服务器,创建、查询、更新和删除数据库中的数据。SQL语句是操作数据库的语言,如`CREATE DATABASE`用于创建数据库,`USE`切换当前工作数据库,`CREATE TABLE`定义表结构,`...

    MySql5.0使用手册

    - JOIN操作:连接多个表,进行关联查询。 - GROUP BY与HAVING:用于分组数据并进行条件筛选。 - ORDER BY与LIMIT:排序结果和限制返回的行数。 6. **插入与更新数据** - INSERT INTO:向表中插入新记录。 - ...

    MySql帮助文档网页版

    基础操作包括SELECT(查询)、INSERT(插入)、UPDATE(更新)和DELETE(删除)。 2. **数据类型**: - 整数类型:如TINYINT、SMALLINT、MEDIUMINT、INT和BIGINT,用于存储整数值。 - 浮点类型:如FLOAT和DOUBLE...

    mysql帮助文档

    MySQL支持SQL的各种基本操作,如SELECT(查询)、INSERT(插入)、UPDATE(更新)、DELETE(删除)以及更复杂的JOIN、GROUP BY、HAVING等语句,用于数据检索、更新和管理。 2. **数据类型**:MySQL支持多种数据类型...

    MySQL入门很简单教程

    MySQL支持多种数据类型,包括数值类型(如INT、FLOAT、DOUBLE)、字符串类型(VARCHAR、TEXT)、日期时间类型(DATE、TIME、DATETIME)和二进制类型(BLOB、BINARY)。选择合适的数据类型可以优化存储空间和提高查询...

    MySql的收藏学习专用。。。

    在MySQL中,你可以使用SQL进行数据查询、插入、更新和删除,以及创建和修改表结构、索引等。 3. **数据类型**: MySQL支持多种数据类型,如整数类型(TINYINT、SMALLINT、INT、BIGINT)、浮点和双精度类型(FLOAT、...

    MySQL入门很简单

    - 字符串类型:CHAR、VARCHAR、TEXT等。 - 日期/时间类型:DATE、TIME、DATETIME、TIMESTAMP等。 7. 关系与键: - 主键:唯一标识一条记录,使用`PRIMARY KEY`约束。 - 外键:关联两个表的字段,使用`FOREIGN ...

    mysql网络数据库学习指南

    2. 关系型数据库:MySQL基于关系模型,数据以表格形式存在,每个表格由列和行组成,通过键值关联不同表格,实现数据间的关联。 三、MySQL网络数据库特性 1. 网络化:MySQL可以通过网络进行访问,支持TCP/IP、UNIX套...

Global site tag (gtag.js) - Google Analytics