【发布时间】:2016-11-15 12:16:26
【问题描述】:
我目前正在尝试解决以下问题:
我的任务是解析大型(+-3500 行 300kb)以管道分隔的文本文件,并将它们逐行与我们数据库中的相应代码进行比较。文件示例如下:
文件名: 015_A.txt
文件内容(示例仅显示 4 行):
015|6999|Contrary to popular belief, Lorem Ipsum is not simply random text. It has roots in a piece of classical Latin literature from 45 BC, making it over 2000 years old.|1|1|0|0|2016/01/01
015|3715|It has roots in a piece of classical Latin literature from 45 BC|1|1|213.5|213.5|2016/01/01
015|3724|Making it over 2000 years old.|1|1|617.4|617.4|2016/01/01
015|4028|Words will go here.|1|1|74|74|2016/01/01
我将提供一个我已经构建的网络界面,以允许从浏览器中选择文件然后上传到服务器。
使用上面的示例管道文件,我将只使用这些:
代码(以上面第1行为例:6999)
价格(以上面第1行为例:0)
然后我会(在我看来不确定这是否是最好的方法)需要为每一行运行一个查询(我们的数据库是 MSSQL),例如:
SELECT t.Price
FROM table t
WHERE t.code = '6999'
如果 t.Price === 0 则第 1 行已通过。因为它等于源文件。
这是我认为我只需要提出一些建议的地方,因为我确信有很多方法可以解决这个问题,如果可能的话,我想指出以有效方式执行此操作的方向。 (解析文件的最佳方法示例?我是按代码运行查询还是使用 IN 子句执行 SQL 语句,然后比较每个代码和价格?我是否应该放弃这个想法并使用某种形式的纯 SQL 工具我有管道文件要处理/导入。)
任何建议将不胜感激。
【问题讨论】:
标签: php sql-server parsing import