[英]MySQL UPDATE multiple rows with results from API
说,我有一个包含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
实施一种批量更新,如如何使用一个查询批量更新mysql数据中所述。 。
或者,如果您控制数据库模式,则可以将API调用的结果插入批处理INSERT
语句中,然后在需要查找特定值时INSERT
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的所有值,则可以通过表A
和B
的简单连接来检索它们。
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
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.