mysql - 如何快速更新各行的值?

标签 mysql sql

我的 Excel 工作表中有两列数据。一个是id_upload,另一个是id_work。如何更新 Works 表,以便正确的 id_work 将正确的值更新到 id_upload 列中?

works 表中有 23 列,因此我需要具体更新 id_upload 列,并且它需要获取正确的行(通过 id_work) .

以下是更新数据的示例:

id_upload  id_work
15           331
16           370
17           689
18           690
19           765

目前,works 表的 id_upload 字段中没有任何值。有 80 行更新需要完成,我不想手动完成:)。

最佳答案

不要使用单个查询。那只是自找麻烦。使用 Excel 创建多个查询并不难。

由于您忽略了为表提供实际架构,我假设名称为 smf_works_worksid_work 是主键且是唯一键,id_upload在 Excel 中,应将其分配给 smf_works_worksid_upload 字段。我还假设所有字段都是整数或数字字段。

设 Excel 中的 A 列为 id_upload。令 Excel 中的 B 列为 id_work。设第 1 行为列标题,第 2 行及其下方为数据。

在 Excel 的 C 列中,输入以下公式:

=CONCATENATE("INSERT INTO smf_works_works (id_work, id_upload) VALUES (",B2,",",A2,") ON DUPLICATE KEY UPDATE id_upload = ",A2,";")

现在填写 C 列中的 80 行。现在选择该列,并将其粘贴到文本编辑器中并验证它看起来是否正确。然后将其粘贴到 MySQL Workbench 或您喜欢的查询分析器中,并运行第一行。使用 SELECT 语句验证数据是否正确。现在运行剩余的 79 行。

关于mysql - 如何快速更新各行的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27717006/

相关文章:

mysql - 服务器监控软件-设计数据库MySQL

javascript - 选择下拉菜单项时自动从我的数据库填写文本区域字段

mysql - 选择没有至少一个关联的值

sql - 我可以只将记录集中的一行/字段复制到 Excel 列吗

sql - 在进行分析查询时如何避免 DISTINCT 成为拐杖?

javascript - 如何在php echo中添加弹出窗口?

sql - mysql @@identity 与 sql-server last_insert_id()

sql - PostgreSQL:在大型数据库上定义主键

MySQL 存储过程仅返回 Select 语句的第一行

mysql - 为什么此查询失败?