日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

mysql如何更新两条数据_mysql根据查询结果批量更新多条数据(插入或更新)

發布時間:2024/3/13 数据库 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql如何更新两条数据_mysql根据查询结果批量更新多条数据(插入或更新) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

mysql根據查詢結果批量更新多條數據(插入或更新)

1.1 前言

mysql根據查詢結果執行批量更新或插入時經常會遇到1093的錯誤問題?;旧吓坎迦牖蛐略龆紩婕暗阶硬樵?#xff0c;mysql是建議不要對需要操作的表放入子查詢條件中的,因此我們盡量避免子查詢中涉及到需要操作的表,如果無法避免,則可以考慮用連接查詢的方式進行。

ERROR 1093 (HY000): You can't specify target table 'dir' for update in FROM clause

1.2 根據查詢結果批量更新

批量更新另一張表的查詢結果:

update

file_directory_info dir

left join

file_directory_temp dirTemp

on

dirTemp.pk_id > 1000

and

dirTemp.dir_category = dir.dir_category

set

dir.parent_id = dirTemp.pk_id,

dir.dir_level = 2,

dir.dir_seq = concat('.',dirTemp.pk_id, dir.dir_seq)

where dir.dir_level is null;

1.3 根據查詢結果批量新增

直接新增另一張表的查詢結果:

insert into

file_directory_info

(pk_id, dir_category, dir_seq, dir_name, parent_id)

select

(dictid + 1000) as pk_id,

dictid as dir_category,

concat('.',(dictid + 1000),'.') as dir_seq,

dictname as dir_name,

0 as parent_id

from dict_entry dict

where dict.dictTypeid = 'HTCM_FILE_CLASSIFICTION' ;

總結

以上是生活随笔為你收集整理的mysql如何更新两条数据_mysql根据查询结果批量更新多条数据(插入或更新)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。