You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MySQL执行select *查询Orders表时首列OrderID显示异常

问题根因

两个问题叠加导致显示异常:

  • 字段长度修改未生效:从describe Orders输出可以看到,Description字段目前仍是varchar(50),并没有改成你预期的100,之前导入CSV的截断报错就是字段长度不足导致的。
  • 字段内存在回车控制符脏数据:导入时长度不足截断内容,加上CSV里未正确转义的\r(Windows格式回车符)被存入Description字段,会直接打乱MySQL命令行客户端的输出逻辑:客户端输出碰到\r时会把光标移回当前行首,后续输出的内容会覆盖行首的OrderID位置,看起来就像OrderID值丢失、列错位。这也完全匹配你观察到的现象:不查询Description字段时,不会输出这些带控制符的内容,显示就完全正常。
修复步骤

按顺序执行即可:

  1. 先把Description字段长度调大,避免后续写入截断:
    ALTER TABLE Orders MODIFY COLUMN Description VARCHAR(255) DEFAULT NULL;
    
  2. 清理现有数据里残留的回车、换行控制符,修复脏数据:
    UPDATE Orders
    SET Description = REPLACE(REPLACE(Description, '\r', ''), '\n', ' ')
    WHERE Description LIKE '%\r%' OR Description LIKE '%\n%';
    
  3. 后续重新导入CSV时,注意配置正确的导入参数:如果CSV字段内容本身带换行,要通过FIELDS ENCLOSED BY指定字段包裹符,同时确认行终止符配置和CSV实际格式一致,别把字段内的换行识别成整行结束标记。

修复完重新执行select * from Orders limit 50;就能看到正常对齐的结果,OrderID不会再出现显示错位的问题。


内容的提问来源于stack exchange,提问作者Jennifer Valenti

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.01 22:09:39