今天我做了一些愚蠢的事情:我有一个 Excel 文件中的卡号列表,我必须以某种方式将其导入数据库表。所以我将数字导出到 CSV 文件,但没有任何引号(不要问我为什么)。该文件看起来像:
123456
234567
345678
...
然后我创建了一个带有单列的表VARCHAR(22)
并做了一个
LOAD DATA LOCAL INFILE 'numbers.csv' INTO TABLE cards
这工作得很好,除了许多我忽略的警告(我做的另一件愚蠢的事情)。之后,我尝试使用此 SQL 进行查询:
SELECT * FROM cards WHERE number='123456'
这给了我一个空的结果。而这有效:
SELECT * FROM cards WHERE number=123456
注意缺少的引号!看来,我设法VARCHAR
用数据填充我的表INTEGER
。我根本不知道这怎么可能。
我已经尝试用这样的方法解决这个UPDATE
问题
UPDATE cards SET number = CAST(number AS CHAR(22))
但这没有用。
那么有没有办法解决这个问题,这怎么可能发生呢?