我之前提过这个,但是经过一番研究之后,我意识到我找错了地方。这是情况。我创建此表:
CREATE TABLE PC_Contacts
(
POC VARCHAR(255) PRIMARY KEY NOT NULL,
Phone_1 VARCHAR(255),
Phone_2 VARCHAR(255)
);
我将CSV文件导入到MySQL中,该文件具有表PC_Contacts的值:
USE Network
LOAD DATA INFILE 'C:\\ProgramData\\MySQL\\MySQL Server 5.7\\Uploads\\PC_Contacts.csv'
INTO Table PC_Contacts
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY '\n'
IGNORE 1 ROWS;
导入后,我的输出如下所示:
+------------------+--------------+---------------+
| POC | Phone_1 | Phone_2 |
+------------------+--------------+---------------+
|April Wilson | 123-456-5000 | 123-456-5006
| | 123-456-2222 |
| | 123-456-5331 |
| | 123-456-7772 |
|Anton Watson | 123-456-1258 | 123-456-6005
|Elisa Kerring | 123-456-1075 | 123-456-4475
现在您可能还记得,根据我的代码输入,POC是PK。在原始CSV文件中,我每行都有一个值。但是,如您所见,右侧没有任何值的内容都会影响左侧列的值。但是,如果我查看了GUI并在其中拉出表格,则显示该单元格已填充值,因此数据就在其中。如果我要输入xxx-xxx-xxxx,它将解决此问题:
+------------------+--------------+---------------+
| POC | Phone_1 | Phone_2 |
+------------------+--------------+---------------+
|April Wilson | 123-456-5000 | 123-456-5006
|Nicky Nite | 123-456-2222 | xxx-xxx-xxxx
|Nicole | 123-456-5331 | xxx-xxx-xxxx
|Becky | 123-456-7772 | xxx-xxx-xxxx
|Anton Watson | 123-456-1258 | 123-456-6005
|Elisa Kerring | 123-456-1075 | 123-456-4475
显然,我的意图是使我可以看到该值,而不必在命令行中应用特殊格式。可能有一个特殊的SELECT命令吗?
这是按要求链接到.CSV部分的链接:
https://drive.google.com/file/d/0B0MMqHN75RpGdkZhcGp0SWtmams/view?usp=sharing
您的CSV文件在行末包含换行符,换行符会破坏格式。使用:
SELECT POC, Phone_1, REPLACE(Phone_2, '\r', '') AS Phone_2 FROM PC_Contacts;
或按以下方式更改导入查询:
USE Network
LOAD DATA INFILE 'C:\\ProgramData\\MySQL\\MySQL Server 5.7\\Uploads\\PC_Contacts.csv'
INTO Table PC_Contacts
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY '\r\n'
IGNORE 1 ROWS;
并使用简单SELECT
:
SELECT * FROM PC_Contacts;
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句