2011-05-09 126 views
1

我有一个从外部源加载的CSV文件构建的数据库。出于某种原因,在很多表的ID号被装入单引号包围的CSV /数据库 - 这里有一个样本行:从加载到数据库的CSV数据中快速删除单引号

"'010010'","MARSHALL MEDICAL CENTER NORTH","8000 ALABAMA HIGHWAY 69","","","GUNTERSVILLE","AL","35976","MARSHALL","2565718000","Acute Care Hospitals","Government - Hospital District or Authority","Yes" 

是否有任何SQL我已经建立的数据库上运行去掉这些单引号,还是我必须解析每个CSV文件并重新导入?

+0

如果它是一个标准的csv文件,那么mysqlimport在处理这种类型的数据时应该没有问题。你用什么来导入数据? – Wes 2011-05-09 05:12:26

+0

导入数据可以正常工作,但数据中的单引号使SELECTs不方便。 – MarathonStudios 2011-05-09 05:19:29

+0

你需要找出为什么外部来源将单引号放在该标识符周围。这是一次性进口还是您需要重复进行?如果反复,您需要尝试获取所提供的数据(尽管当他们说“他们不能”时不要感到惊讶)。如果一次性,然后尝试像BiggsTRC建议的更新。 – 2011-05-09 05:22:20

回答

2

我相信下面会做它(第一测试):

UPDATE U 
SET YourID = REPLACE(YourID, '''', '') 
FROM MyTable AS U 
WHERE YourID LIKE '''%''' 

如果它工作的权利,在生产运行之前做了充分的备份。

+0

也许LIKE子句应该是'LIKE''''%''''(搜索一个开头的单引号,任何东西,一个单引号)? – 2011-05-09 05:17:31

+0

@Jonathan Leffler - 好。我更新了我的代码以反映这一变化。谢谢。 – IAmTimCorey 2011-05-09 05:19:15

+0

嗨BiggsTRC - 我使用的最终代码是: USE医院; 更新医院 SET ProviderNumber = REPLACE(ProviderNumber,'''','') WHERE ProviderNumber LIKE'''%'''; 这只是对你的一个小小的修改,我不确定额外的代码是什么。谢谢! – MarathonStudios 2011-05-09 05:26:13