0

请耐心等待,因为这将是一封很长的邮件。作为作业的一部分,我正在使用 MYSQL 5.6.10 构建一个 TAC(手机)数据库。我使用以下 SQL 命令创建了一个名为 TACTest 的表:

CREATE TABLE TACTest (TAC VARCHAR(8), Make VARCHAR(384), Manufacturer VARCHAR(128), Band VARCHAR(384);

我正在通过一个名为 test.txt 的文件填充此表,该文件存储在我的 C: 驱动器上。这是该文件的内容(6 种不同的手机):

TAC|Marketing Name|Manufacturer|Band
00100100|G410|Mitsubishi|GSM 1800,GSM 900
00440227|This is a Test IMEI|(AEB) Armando Este Banquito|GSM 1800,GSM 900
01283200|Bunting Camera – WX292|Jaguariuna - Brazil|GSM 1900,GSM850 (GSM800)
01237100|WX295 – EU (850/1900)|Motorola|GSM 1900,GSM850 (GSM800)
35599803|Nüvifone A50|ASUSTek Computer Inc|GSM 1800,GSM 1900,GSM 900,GSM850 (GSM800)
01273300|"T410/T410i, T410s/T410si,T510/W510/T510i, X201/X201s, X201i/X201si, X201 Tablet, X201i Tablet, X100e, Edge 13"",  Edge 14"", Edge 15"" , L512, L412 , Edge 13”, Edge 11”, X120e"|Lenovo Mobile Communication Technology Ltd|GSM 1800,GSM 1900,GSM 900,GSM850 (GSM800)

这是我用来填充表的 SQL:

LOAD DATA LOCAL INFILE 'C:\\test.txt' INTO TABLE TACTest CHARACTER SET utf8 fields terminated by '|' lines terminated by '\n' IGNORE 1 LINES (TAC, Make, Manufacturer, Band);

问题是,Make 和 Manufacturer 列在插入后数据库中缺少数据。这是数据库中“制造商”和“制造商”列的信息:

Make    Manufacturer
G410    Mitsubishi
This is a Test IMEI (AEB)
Bunting Camera  Jaguariuna - Brazil
WX295   Motorola
N   ASUSTek Computer Inc
"T410/T410i, T410s/T410si,T510/W510/T510i, X201/X201s, X201i/X201si, X201 Tablet, X201i Tablet, X100e, Edge 13"",  Edge 14"", Edge 15"" , L512, L412 , Edge 13  Lenovo Mobile Communication Technology Ltd

基本上对于制造商列,第 2 行有部分信息,对于制造列,第 3-6 行有部分信息?

我在这里做错了什么?插入特殊字符是否需要做一些特别的事情?任何帮助都感激不尽。

4

1 回答 1

0

我刚刚运行了您提供的查询,并且得到了正确的数据。我相信唯一的区别在于我们的操作系统(我的机器在 ubuntu 上运行)

mysql> show create table TACTest \G
*************************** 1. row ***************************
       Table: TACTest
Create Table: CREATE TABLE `TACTest` (
  `TAC` varchar(8) DEFAULT NULL,
  `Make` varchar(384) DEFAULT NULL,
  `Manufacturer` varchar(128) DEFAULT NULL,
  `Band` varchar(384) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
1 row in set (0.00 sec)



mysql> select * from TACTest \G
*************************** 1. row ***************************
         TAC: 00100100
        Make: G410
Manufacturer: Mitsubishi
        Band: GSM 1800,GSM 900
*************************** 2. row ***************************
         TAC: 00440227
        Make: This is a Test IMEI
Manufacturer: (AEB) Armando Este Banquito
        Band: GSM 1800,GSM 900
*************************** 3. row ***************************
         TAC: 01283200
        Make: Bunting Camera � WX292
Manufacturer: Jaguariuna - Brazil
        Band: GSM 1900,GSM850 (GSM800)
*************************** 4. row ***************************
         TAC: 01237100
        Make: WX295 � EU (850/1900)
Manufacturer: Motorola
        Band: GSM 1900,GSM850 (GSM800)
*************************** 5. row ***************************
         TAC: 35599803
        Make: N�vifone A50
Manufacturer: ASUSTek Computer Inc
        Band: GSM 1800,GSM 1900,GSM 900,GSM850 (GSM800)
*************************** 6. row ***************************
         TAC: 01273300
        Make: "T410/T410i, T410s/T410si,T510/W510/T510i, X201/X201s, X201i/X201si, X201 Tablet, X201i Tablet, X100e, Edge 13"",  Edge 14"", Edge 15"" , L512, L412 , Edge 13�, Edge 11�, X120e"
Manufacturer: Lenovo Mobile Communication Technology Ltd
        Band: GSM 1800,GSM 1900,GSM 900,GSM850 (GSM800)
6 rows in set (0.00 sec)
于 2013-03-26T17:28:35.160 回答