当我对我的表运行Select *查询时,OrderID中的值没有显示出来。我怀疑这与描述列有关,这是我表中的最后一列。当我省略该列时,OrderID中的值就出现了。我确实需要将VARCHAR从50个字符更新到100个字符,因为在将csv文件导入数据库时收到了截断的错误消息。我包含了for的语法审查。
describe Orders;
+-------------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------------+-------------+------+-----+---------+-------+
| OrderID | int(11) | NO | PRI | NULL | |
| CustomerID | int(11) | YES | MUL | NULL | |
| SKU | varchar(20) | YES | | NULL | |
| Description | varchar(50) | YES | | NULL | |
mysql> select * from Orders limit 50;
+---------+------------+------------+----------------------------------------------------+
| OrderID | CustomerID | SKU | Description |
+---------+------------+------------+----------------------------------------------------+
| 76368 | BAS-08-1 C | Basic Switch 10/100/1000 BaseT 8 port
| 62494 | BAS-48-1 C | Basic Switch 10/100/1000 BaseT 48 port
| 98077 | ENT-48-10F | Enterprise Switch 10GigE SFP+ 48 port
| 85882 | ENT-48-40F | Enterprise Switch 40GigE SFP+ 48 port
| 59384 | BAS-48-1 C | Basic Switch 10/100/1000 BaseT 48 port
| 96361 | ENT-48-10F | Enterprise Switch 10GigE SFP+ 48 port
| 15 | 67424 | ADV-48-10F | Advanced Switch 10 GigE Copper/Fiber 44 port coppe |
| 93634 | ENT-24-10F | Enterprise Switch 10GigE SFP+ 24 Port
| 62756 | ENT-24-40F | Enterprise Switch 40GigE SFP+ 24 port
| 99453 | BAS-48-1 C | Basic Switch 10/100/1000 BaseT 48 port
| 98965 | ENT-48-10F | Enterprise Switch 10GigE SFP+ 48 port
| 33 | 87899 | ADV-48-10F | Advanced Switch 10 GigE Copper/Fiber 44 port coppe
mysql> SELECT OrderID, CustomerID, SKU FROM Orders limit 10;
+---------+------------+------------+
| OrderID | CustomerID | SKU |
+---------+------------+------------+
| 0 | 76368 | BAS-08-1 C |
| 2 | 62494 | BAS-48-1 C |
| 6 | 98077 | ENT-48-10F |
| 8 | 85882 | ENT-48-40F |
| 10 | 59384 | BAS-48-1 C |
| 14 | 96361 | ENT-48-10F |
| 15 | 67424 | ADV-48-10F |
列description
是在某个Windows应用程序上生成的,并且在末尾有回车(CR -r
)
在非windows应用程序中显示时,CR返回到行首,删除一些内容。
注意其中两行是如何正确显示OrderId的。在这些情况下,description
似乎被截断了。那就是CR被剪掉了。
What to do…
- 直面问题
- 使用不同的方式显示结果
- 在将任何字符串列存储到表中之前修剪它们。(有很多可能的"修剪"方法;需要知道数据来自哪里以及
INSERTs
是如何执行的。) - 代替
SELECT * ...
,拼写出列:SELECT OrderId, CustomerId, SKU, TRIM(description) ...
(我不确定这是否会起作用)