第一次用 tidb ,请教个问题,网页版通过 csv 倒入,其中有一列是 int 的material_id
,并不是连续的,导入的选项勾选了 primary key ,数据导入倒是没问题,
使用select * from mytable limit 1
这种没问题,
但是使用select material_id from mytable limit 1
会报错 Unknown column 'material_id' in 'field list'
。
更有意思的是,如果使用网页版,输入material_id
过程中,如果用 tab 进行补全,前边自动加了个红点,类似于select ·material_id from mytable limit 1
反而正常了。网页版不用补全的话,还是报错。用``包上material_id
也不行。 删掉表,重新倒入,不再勾选 primary key ,还是有同样的问题。
同一个 csv 倒入到 mysql 倒是没有类似的问题。
那个小红点,粘不出来,实在搞不懂是个什么,有没有同志遇到过类似的问题
1
wtfedc OP 那个小红点单独粘不出来,但是连着前边的空格,可以粘出来,检测出来 unicode 是 65279 ,然后通过
```golang SQL := fmt.Sprintf("SELECT %cmaterial_id FROM mytable LIMIT 1", 65279) ```终于在业务代码里实现正常查询了,我是真的不懂,为什么有个这样的坑 |
2
wtfedc OP 突然懂了,65279 对应十六进制 FEFF ,也就是 Unicode Byte Order Mark (BOM)。
csv 文件为了解决 excel 打开的中文乱码问题,手动设置过 BOM ,在导入到 tidb 的时候,U+FEFFmaterial_id 被当成了一个整体 |