gpt4 book ai didi

php - 将 sql 表内容从一个表复制到另一个表 - 有条件

转载 作者:行者123 更新时间:2023-11-29 08:33:59 26 4
gpt4 key购买 nike

我有 2 张 table positions - 其中包含一个名为“tripname”的字段trips - 其中包含一个名为“name”的字段

我使用一个 csv 文件,将数据导入到这两个表中,现在我需要做一些进一步的更新,但有点卡住了。

通过添加 csv 文件中包含的行数来更新“positions”表。其中一个字段称为“tripname”(包含一个值),另一个字段称为“FK_Trips_ID”(添加为 NULL)。

trips”表仅更新一行(如果尚不存在),其中包含一个名为“name”的字段和另一个名为“ID”的字段。

这就是我被困住的地方。我需要:

Insert into the 'positions.FK_Trips_ID' field the value of the 'trips.ID'
where the 'trips.name' is equal to the 'positions.tripname
- BUT only if 'positions.FK_Trips_ID' is NULL

我找不到此类插入的类似示例,并且想知道是否有好心人可以为我指明正确的方向。

最佳答案

我认为您的意思是根据行程上的匹配记录从表positionsUPDATEFK_Trips_ID表。

您可以连接两个表以仅对数据库发出一个请求,

UPDATE  positions a
INNER JOIN trips b
ON a.tripname = b.name
SET a.FK_Trips_ID = b.ID
WHERE a.FK_Trips_ID IS NULL

为了提高 UPDATE 语句的性能,必须对列建立索引,以避免执行全表扫描,这会导致在大型数据库上执行时速度缓慢。

ALTER TABLE positions ADD INDEX (tripname);
ALTER TABLE trips ADD INDEX (name);

关于php - 将 sql 表内容从一个表复制到另一个表 - 有条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15703558/

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