使用数据导入的时候会因为解析不同的原因,使得数据类型不匹配,从而出现显示乱码(这种情况充其量也算是一种乱码了吧)。
解决办法:使用 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>
。
全部 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)
|