mysql错误选择输出

时间:2014-03-23 23:49:56

标签: mysql sql select

我使用命令创建了表:

CREATE TABLE genre(
    genre_id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(20) NOT NULL
);

然后我使用命令填充表格数据:

load data infile 'D:/MySQL/.../genres.txt' into table genre(name);

每一行都有一条记录。

当我尝试使用以下命令将表的内容打印到终端时出现问题:

select * from genre;

输出:

 +----------+--------------+
 | genre_id | name         |
 +----------+--------------+
 |       1 | alternative
   | 2 | blues
 |   3 | classic
 |   4 | country
   | 5 | dance
 |   6 | electro
    |7 | folk
     | | pop
     | | rap
    |0 | jazz
  | 11 | latino
   |12 | opera
     | | r&b
  | 14 | reagge
    |5 | rock
 |       16 | metal        |
   |
 +----------+--------------+

(竖条也打印错误)

有谁知道为什么第一列的输出打印错了?我是mysql初学者,很抱歉,如果这是一个愚蠢的问题。

文件内容:

alternative
blues
classic
country
dance
electro
folk
pop
rap
jazz
latino
opera
r&b
reagge
rock
metal

1 个答案:

答案 0 :(得分:1)

评论太长了。

genre_id自动递增。因此,当一行插入表中时,该列将获得一个值。就这么简单。

您似乎拥有没有genre_id的行。这是不可能的。该列声明为整数,不能采用NULL值。因此,您会看到每个插入行的一些值。

结论是看起来缺少genre_id的行实际上根本不是单独的行。相反,它们是具有嵌入换行符或回车符的单行,这些字符会使输出变得混乱。如果您使用的是基于Unix的系统,则可以使用od(八进制转储)查看文件的内容。可能有一些正确的行终止符可以解决问题。