sql - 为什么 SQL 中的“insert into select”语句作为新行插入而不正确插入?
问题描述
我有表 1。
我有另一个带有以下列的空表 2。
我想通过从表 1 中选择来插入表 2 - 所以我将查询编写为:
insert into table2(employee,id,zone,url)
select employee, id, zone, concat('https://',employee,'.com/',id,'?',zone)
from table1
现在我的表 2 看起来像这样,
现在对于authcode
列,我执行以下操作并将其插入到 table2 中。
insert into table2(authcode)
SELECT CONVERT(VARCHAR(10),HASHBYTES('MD5', substring(URL,8,100)),2)
from table2.
但是插入的发生方式不同,就像这样作为一个完整的新行集。
有人可以帮我将最后一列插入相应的行而不是创建一个新行吗?
解决方案
您应该做的是更新表以填充列authcode
,但您可以在插入行时一步完成所有操作:
insert into table2(employee,id,zone,url, authcode)
select
employee,
id,
zone,
concat('https://',employee,'.com/',id,'?',zone),
CONVERT(VARCHAR(10),HASHBYTES('MD5', substring(concat('https://',employee,'.com/',id,'?',zone),8,100)),2)
from table1
或者如果你想更新:
update table2
set authcode = CONVERT(VARCHAR(10),HASHBYTES('MD5', substring(URL,8,100)),2)
where authcode is null
推荐阅读
- neural-network - 具有反向传播的 FF 神经网络的参考工作
- python - Fabric2 获取文件引发 IsADirectoryError
- python - 设置 debug = False 会使 Django 应用程序崩溃并出现以下错误,如何解决?
- gradle - Gradle 每次刷新都会再次下载所有依赖项
- vba - 如何创建一个名称在字符串中的新表单实例?
- jquery - 如何在表格的每一行上插入一个countif列?
- android - 当文本很大并且正在滚动时,TextView Shape 背景不显示
- android - 在 Spinner 中处理冗长的数据加载
- html - html中的单元格填充/间距
- javascript - setState 后的 React-Native 渲染不会发生