2012-09-21 62 views
1

这里结束LOAD DATA INFILE是SQL查询我到目前为止:如何在遇到某一个领域

LOAD DATA INFILE 'filename.csv' 
INTO TABLE zt_accubid 
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' 
LINES TERMINATED BY '\r\n' 
IGNORE 4 LINES 

我需要能够终止一旦遇到value="xyz"场的过程。 这可能吗?

回答

1

LOAD DATA INFILE没有这个选项。有一对夫妇workaraounds,虽然

  • 你可以通过操纵该文件第一
  • 正如阿兰·柯林斯提到解决的MySQL之外的问题,如果列包含您标记具有唯一的值,而你没有在transcation里面有LOAD DATA,你可以使用一个唯一的键作为塞子。
  • 您可以在桌上使用触发器作为停止
  • 如果标记是附近的表的末尾或开销并不对你很重要,你可以做一个完整的LOAD DATA到一个临时经理表,然后使用INSERT INTO ... SELECT只有相关数据进入你的决赛桌
  • 相若方式
  • 你可以加载所有数据,然后删除irellevant部分
+0

谢谢。我去加载所有的数据,然后删除不需要的东西。 – cerides

0

当然 - 在加载之前在数据库中放一行,并在其上放置一个唯一键。 LOAD在碰到重复项时应该失败。

+0

这只会工作,如果在此列的所有其他值是唯一的! –