Mysql: 当我 select 2 个字符长的东西时,Varchar(3) 找不到输入

Mysql: Varchar(3) can't find input when I select something that is 2 characters long

我有这个 table:

CREATE TABLE `country` (
  `name` VARCHAR(60) NOT NULL,
  `code` VARCHAR(3) UNIQUE NOT NULL,
  PRIMARY KEY  (`code`)
);

如你所见,这个table的主键是单词code 当我尝试 select 此 table 中的特定代码时,即 2 个字符长,它找不到任何内容。

另一方面,当我 select 一个 3 个字符长的代码时,如下所示: select * from `country` where `code` = "TZA";

我得到我想要的结果

我在 table 中搜索了我的变量(例如代码“AL”),它似乎已注册。

为什么会发生这种情况,我该如何让它发挥作用?

提前致谢!

我正在从如下所示的 csv 文件中导入数据:

LOAD DATA LOCAL INFILE 'path_to_file\countries.csv'
INTO TABLE `country`
FIELDS TERMINATED BY ','
LINES TERMINATED BY '\n'
IGNORE 1 ROWS
(`name`, `code`);

我已经尝试 select 在 code 的末尾和前面使用 space:

select * from `country` where `code` = 'AL ';
select * from `country` where `code` = ' AL';

但他们什么也没输出

真正的解决办法是:

导入此 CSV 文件时,您应该使用:

LOAD DATA LOCAL INFILE 'path_to_file\countries.csv'
INTO TABLE `country`
FIELDS TERMINATED BY ','
LINES TERMINATED BY '\r\n'
IGNORE 1 ROWS
(`name`, `code`);

因为您的线路似乎以 Windows 终止线路的方式终止。