MySQL将查询的结果作为update更新的数据,且在原字段数据后 CONCAT拼接(lej)

MySQL将查询的结果作为update更新的数据,且在原字段数据后 CONCAT拼接(lej)

大家好,又见面了,我是全栈君。

update user INNER JOIN 
(SELECT GROUP_CONCAT('',id)AS app_id_str  FROM `app` WHERE `admin_id` = '用户B的id' AND `status` > '0' AND `is_deleted` = '0' LIMIT 0,1000 ) app_id_strs 
set app_id= CONCAT(app_id,',',app_id_str) WHERE uid=用户A的id;

释义:

1.查询app表中状态大于0,未删除,且admin_id=用户Bid 用户的所有主键id,并用(,)逗号 拼接成字符串别名 app_id_strs ;

(SELECT GROUP_CONCAT('',id)AS app_id_str  FROM `app` WHERE `admin_id` = '用户B的id' AND `status` > '0' AND `is_deleted` = '0' LIMIT 0,1000 ) app_id_strs 

2.更新用户A 的app_id, 在A用户原有的app_id 后,用CONCAT,拼接上查询出来的app_id_strs,并在两者之间用(,)逗号连接

扩展:

二、mysql中update和select结合使用

在遇到需要update设置的参数来自从其他表select出的结果时,需要把update和select结合使用,不同数据库支持的形式不一样,在mysql中如下:

update A inner join(select id,name from B) c on A.id = c.id set A.name = c.name;

根据AB两个表的id相同为条件,把A表的name修改为B的sql语句就如上所示

三、update 和 select 结合使用进行数据更新,案例 

现有两张表 inspect_danger 和 company 表,根据 company 表的 ID 和 inspect_danger 表的COMPANY_ID 匹配,把 company 表内的 INDUSTRY 更新到 inspect_danger表中。

UPDATE inspect_danger ins
LEFT JOIN (
    SELECT 
    com.ID,com.INDUSTRY,ip.ID insId
    FROM company com
    INNER JOIN  inspect_danger ip
    ON ip.COMPANY_ID = com.ID
    GROUP BY com.ID
) c 
ON ins.ID = c.insId
SET ins.COMPANY_INDUSTRY = c.INDUSTRY

四、做SQL查询时会经常需要,把查询的结果拼接成一个字符串。

解决方法: 通过 group_concat 函数

1.正常查询 如下: 

select id result from ctp_enum_item limit 100;

MySQL将查询的结果作为update更新的数据,且在原字段数据后 CONCAT拼接(lej)

2.拼接结果 如下

  select group_concat("'",id,"'") result from ctp_enum_item limit 100; 

MySQL将查询的结果作为update更新的数据,且在原字段数据后 CONCAT拼接(lej)

3.因为拼接的结果很长,导致拼接结果显示不全,可以通过以下方法解决。  在每次查询前执行,使得查询结果值变大。

SET SESSION group_concat_max_len = 10240;
或者
SET GLOBAL group_concat_max_len = 10240; 

4.补充:SQL server 的 拼接SQL如下:

select stuff((
select ','+ requestid
from nccombinedpayment for xml path('')),1,1,'') as requestid ;

五、mysql 对查询出来的字段拼接字符串 concat

SELECT item_starttime,item_username,CONCAT('外出',item_wcaddress) as item_wcaddress,author from tlk_KQ_goout_app;

拼接之前MySQL将查询的结果作为update更新的数据,且在原字段数据后 CONCAT拼接(lej)

拼接之后

MySQL将查询的结果作为update更新的数据,且在原字段数据后 CONCAT拼接(lej)  六、浅析MySQL中concat以及group_concat的使用

七、mysql 往表中某个字段的字符串后追加字符串

update 表名 set 字段名=CONCAT(字段名,”需添加的值”)WHERE 条件;

例如:

update np_order set customer_remark=CONCAT(customer_remark,"需添加的值")WHERE order_id='1'

np_order :表名

customer_remark  字段名称

where  后指定条件

八、mysql 把select结果update更新到表中,从查询结果中更新数据

逻辑:两张表连接获取finishin的重量插入到sale.

UPDATE sale
INNER JOIN (
	SELECT
		sale.FNo,
		sale.FEntryID,
		(finishin.FQty) AS qty
	FROM
		sale,
		finishin
	WHERE
		sale.FNo = finishin.FNo
	AND sale.FEntryID = finishin.FEntryID
	ORDER BY
		sale.FNo
) sale2 ON sale2.FNo = sale.FNo
AND sale2.FEntryID = sale.FEntryID
SET sale.FqtyIn = sale2.qty

逻辑:timefinishin表中有多个相同的FBillNo,FEntryID一样的数据,通过分组来求和qty总重量,成为一张新的表和salesorderinfo进行连表

UPDATE salesorderinfo
INNER JOIN (
	SELECT
		salesorderinfo.FBillNo,
		salesorderinfo.FEntryID,
		(timein.FqtyIn) AS qty
	FROM
		salesorderinfo,
		(
			SELECT
				*, SUM(timefinishin.FQty) AS FqtyIn
			FROM
				timefinishin
			GROUP BY
				FBillNo,
				FEntryID
		) timein
	WHERE
		salesorderinfo.FBillNo = timein.FBillNo
	AND salesorderinfo.FEntryID = timein.FEntryID
) sale2 ON sale2.FBillNo = salesorderinfo.FBillNo
AND sale2.FEntryID = salesorderinfo.FEntryID
SET salesorderinfo.FqtyIn = sale2.qty

发现好东西,https://httpbin.org/ 这个网站可以用来测试 http 请求
参考:

https://blog.csdn.net/qq_36823916/article/details/79403696

https://blog.csdn.net/qq5621/article/details/108098826

https://blog.csdn.net/cydbetter/article/details/82117841

https://blog.csdn.net/mary19920410/article/details/76545053

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

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

(0)
上一篇 2022年2月20日 下午1:00
下一篇 2022年2月20日 下午2:00


相关推荐

  • WXS 模块

    WXS 模块WXS 代码可以编写在 wxml 文件中的 nbsp nbsp 标签内 或以 nbsp wxs nbsp 为后缀名的文件内 模块每一个 nbsp wxs nbsp 文件和 nbsp nbsp 标签都是一个单独的模块 每个模块都有自己独立的作用域 即在一个模块里面定义的变量与函数 默认为私有的 对其他模块不可见 一个模块要想对外暴露其内部的私有变量与函数 只能通过 nbsp module exports nbsp 实现 wxs 文件在微信开发者工具里面 右

    2025年11月8日
    11
  • MATLAB矩阵归一化

    MATLAB矩阵归一化一、单位化矩阵输出矩阵Y为单位化矩阵;方法即是矩阵中所有元素除以该元素所在列向量的二范数clc;clear;X=[790397784912941927110520413297685037113513301925145927514879422793820814161794215597691627989019321599910182113510062864105210051618839196

    2022年6月25日
    74
  • 最全面的UML教程

    最全面的UML教程你想要的干货 都在这里哟最全面的 UML 教程写在最前面的话声明 本篇博文部分资料摘自维基百科和 Calvinsily 的 UML 教程 博文不涉及高深技术 旨在分享相关技术 节省大部分朋友学习的时间成本 望与诸君共同进步 UML 概述什么是 UML UML 是一种为面向对象开发系统的产品进行说明 可视化 和编制文档的标准语言 UML

    2026年3月17日
    2
  • java数组初始化赋值_Java数组的三种初始化方式

    java数组初始化赋值_Java数组的三种初始化方式Java 语言中数组必须先初始化 然后才可以使用 所谓初始化就是为数组的数组元素分配内存空间 并为每个数组元素附初始值 注意 数组完成初始化后 内存空间中针对该数组的各个元素就有个一个默认值 基本数据类型的整数类型 byte short int long 默认值是 0 基本数据类型的浮点类型 float double 默认值是 0 0 基本数据类型的字符类型 char 默认值是 u0000 基本数据

    2026年3月26日
    3
  • pip卸载所有包_pip导出包

    pip卸载所有包_pip导出包pip批量完全卸载包

    2022年10月17日
    4
  • QTreeWidget 简介「建议收藏」

    QTreeWidget 简介「建议收藏」版权声明:如有使用转载,请附加出处 https://blog.csdn.net/jia666666/article/details/81668590 QTreeWidgetQTreeWidget类中的常用方法方法描述setColumnWidth(intcolumn,intwidth)将指定列的宽度设置为给定的值Column:…

    2022年10月1日
    5

发表回复

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

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