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根据查询结果批量更新多条数据(插入或更新)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 文本分析简历项目收集-----机器学习(
- 下一篇: (硅谷课堂项目)Java开发笔记4:前端