gpt4 book ai didi

php - 加载数据文件的子查询

转载 作者:可可西里 更新时间:2023-11-01 07:45:15 27 4
gpt4 key购买 nike

我在处理特定子查询时遇到问题:

LOAD DATA INFILE 'some_address' INTO TABLE 'some_table' 
FIELDS TERMINATED BY 'field_terminate' ENCLOSED BY '"'
ESCAPED BY '\\' ('fieldX', 'fieldY'....'fieldZ')
SET fieldZ= (SELECT Id FROM another_table WHERE Name = fieldZ)

我基本上想要实现的是将文件中的字段替换为执行查询时位于另一个表中的相应 ID。这可能吗?

提前致谢。我在网上看过了。到目前为止还没有运气..

哦,对于上面的查询,我得到一个错误,基本上告诉我子查询不是标量的。很明显,子查询并没有为每一行的插入执行,而是为每一行的所有 fieldZ 组合在一起执行(因此它返回多个 ID)

最佳答案

要在 SET 中使用列的数据,您必须将其放入变量中:

LOAD DATA INFILE 'some_address' INTO TABLE 'some_table' 
FIELDS
TERMINATED BY 'field_terminate'
ENCLOSED BY '"'
ESCAPED BY '\\'
('fieldX', 'fieldY', ..., @fieldZ)
SET fieldZ = (SELECT Id FROM another_table WHERE Name = @fieldZ)

这是假设 another_table.Name 是唯一的。如果不是,则需要强制子查询返回 1 行,例如通过添加 LIMIT 子句:

SET fieldZ = (SELECT Id FROM another_table WHERE Name = @fieldZ LIMIT 1)

关于php - 加载数据文件的子查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16906791/

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