zoukankan      html  css  js  c++  java
  • 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;

    2.拼接结果 如下

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

    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中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

    赞赏码

    非学,无以致疑;非问,无以广识

  • 相关阅读:
    type为number的input标签输入小数的方法
    魔兽争霸3作弊码
    pom.xml 添加 JUnit依赖
    缺失 import org.apache.commons.fileupload.FileUploadException; 包
    使用WebMvcConfigurerAdapter 做登录,失效的一个小小原因
    Missing session attribute 'user' of type List 解决办法
    @RequestMapping 和 @GetMapping @PostMapping 区别
    thymeleaf模板对没有结束符的HTML5标签解析出错的解决办法
    Thymeleaf 模板 引用头部 尾部 最简单教程
    IDEA 如何弹出Select classes to import
  • 原文地址:https://www.cnblogs.com/lxwphp/p/15452466.html
Copyright © 2011-2022 走看看