MySQL错位输出原因与解决办法

使用数据导入的时候会因为解析不同的原因,使得数据类型不匹配,从而出现显示乱码(这种情况充其量也算是一种乱码了吧)。

解决办法:使用 DataGrip 将错误的NULL改为正确的<null>,将与此类型匹配的数据传入并覆盖源数据即可。

出现问题

前倾提要:用 dataGrip 把数据库的一个表修好了

终于找到问题所在

使用数据导入的时候会因为解析不同的原因,使得数据类型不匹配,从而出现显示乱码(这种情况充其量也算是一种乱码了吧)。

解决办法:使用 DataGrip 将错误的NULL改为正确的<null>,将与此类型匹配的数据传入并覆盖源数据即可。

如果按照原来的错误输出,显示的应该是下面这样:

1
2
3
4
5
6
7
8
9
10
mysql> SELECT * FROM v_dp;
+--------------+-----------------+--------------+
| departmentID | departName | comment |
+--------------+-----------------+--------------+
| | 人力资源部 | NULL
| | 经理办公室 | NULL
| | 研发部 | NULL
| | 市场部 | NULL
+--------------+-----------------+--------------+
6 rows in set (0.00 sec)

令我百思不得其解,用了很多种办法都没办法正确输出,曾一度不想继续做这个实验。

然而今天,在对数据库进行改动操作的时候,发现了下面的这种情况。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
mysql> INSERT INTO v_dp VALUES(6,'广告部','推广产品');
Query OK, 1 row affected (0.00 sec)

mysql> INSERT INTO department VALUES(7,'策划部','策划产品');
Query OK, 1 row affected (0.01 sec)

mysql> SELECT * FROM v_dp;
+--------------+-----------------+--------------+
| departmentID | departName | comment |
+--------------+-----------------+--------------+
| | 人力资源部 | NULL
| | 经理办公室 | NULL
| | 研发部 | NULL
| | 市场部 | NULL
| 6 | 广告部 | 推广产品 |
| 7 | 策划部 | 策划产品 |
+--------------+-----------------+--------------+
6 rows in set (0.00 sec)

出现了这样的情况,让我喜出望外,立马意识到,肯定是原来的NULL数据格式不正确。
果不其然,打开 DataGrip 看了一下 comment 字段的数据,虽然表面上都是 NULL,但是右键 Set NULL 之后,神奇的事情出现了。正确的 NULL 识别应该为<null>

正确的 NULL

全部 Set NULL 之后,再回到 command line 界面查询表就能看到表的打印完全舒服了。

1
2
3
4
5
6
7
8
9
10
11
12
mysql> SELECT * FROM v_dp;
+--------------+-----------------+--------------+
| departmentID | departName | comment |
+--------------+-----------------+--------------+
| 2 | 人力资源部 | NULL |
| 3 | 经理办公室 | NULL |
| 4 | 研发部 | NULL |
| 5 | 市场部 | NULL |
| 6 | 广告部 | 推广产品 |
| 7 | 策划部 | 策划产品 |
+--------------+-----------------+--------------+
6 rows in set (0.00 sec)
Author: SmallXeon
Link: https://hexo.chensmallx.top/2018/11/23/MySQL-disorder-output-solution/
Copyright Notice: All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.
一些推广链接
几个便宜量大的小✈场: FASTLINK, YToo, 论坛邀请注册: ,
便宜量大但是稳定性不足的VPS: , 价格略贵但好用的VPN: , ,