说,我有一个包含4列的表格。前两列来自Feed。我需要使用API请求的结果更新列value1和value2。 API请求中的值应该进入value1和value2
Navigator.SceneConfigs
例如,API请求为我提供了以下值:
+---------+------+-------+-------+
| prod_id | name | value1| value2|
+---------+------+-------+-------+
| 1105 | aat | | |
| 1108 | bbv | | |
| 1111 | ccq | | |
| 1116 | dde | | |
| 1123 | iir | | |
| 1125 | jjm | | |
+---------+------+-------+-------+
所以在这个例子中我想更新这3条记录,但在我的情况下,我一次会更新大约1000-2000条记录。
1108, banana, apple
1116, cucumber, pineapple
1123, orange, melon
如何只使用一个或少数几个查询来更新2000条记录?我需要使用临时表还是有办法没有?
答案 0 :(得分:0)
您可以按How to bulk update mysql data with one query?中所述使用CASE
实施一种批量更新。
或者,如果您控制数据库架构,则可以在批处理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的所有值,则可以通过表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