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 终止线路的方式终止。
我有这个 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 终止线路的方式终止。