gpt4 book ai didi

MySQL 使用 API 的结果更新多行

转载 作者:行者123 更新时间:2023-11-29 19:53:35 24 4
gpt4 key购买 nike

假设我有一个有 4 列的表格。前 2 列来自 feed。我需要使用 API 请求的结果更新列 value1 和 value2。 API 请求中的值应放入 value1 和 value2

+---------+------+-------+-------+
| prod_id | name | value1| value2|
+---------+------+-------+-------+
| 1105 | aat | | |
| 1108 | bbv | | |
| 1111 | ccq | | |
| 1116 | dde | | |
| 1123 | iir | | |
| 1125 | jjm | | |
+---------+------+-------+-------+

例如,API 请求为我提供了以下值:

1108, banana, apple
1116, cucumber, pineapple
1123, orange, melon

因此,在本示例中,我想更新这 3 条记录,但就我而言,我一次会更新大约 1000-2000 条记录。

+---------+------+--------+----------+
| prod_id | name | value1 | value2 |
+---------+------+--------+----------+
| 1105 | aat | | |
| 1108 | bbv |banana |apple |
| 1111 | ccq | | |
| 1116 | dde |cucumber|pineapple |
| 1123 | iir |orange |melon |
| 1125 | jjm | | |
+---------+------+--------+----------+

我如何能够仅使用一个或少数查询来更新(例如 2000 条记录)?我需要使用临时表还是有办法不用?

最佳答案

您可以使用 CASE 实现一种批量更新,如 How to bulk update mysql data with one query? 中所述。 .

或者,如果您控制数据库架构,则可以在批处理 INSERT 语句中插入 API 调用的结果,然后在需要查找特定值时JOIN

A

+---------+------+
| prod_id | name |
+---------+------+
| 1105 | aat |
| 1108 | bbv |
| 1111 | ccq |
| 1116 | dde |
| 1123 | iir |
| 1125 | jjm |
+---------+------+

B

+---------+----------+-----------+
| prod_id | value1 | value2 |
+---------+----------+-----------+
| 1108 | banana | apple |
| 1116 | cucumber | pineapple |
| 1123 | orange | melon |
+---------+----------+-----------+

当从 API 调用检索结果时,可以批量插入它们。

INSERT INTO B (prod_id, value1, value2) VALUES 
(1108, 'banana', 'apple'),
(1116, 'cucumber', 'pineapple'),
(1123, 'orange', 'melon')

稍后,如果您需要 prod_id 1108 的所有值,您可以通过表 AB 的简单连接来检索它们。

SELECT A.prod_id, A.name, B.value1, B.value2
FROM A JOIN B ON A.prod_id = B.prod_id
WHERE A.prod_id = 1108

关于MySQL 使用 API 的结果更新多行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40753229/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com