2015-06-24 95 views
0

表1SELECT语句显示额外的列

代码|类型|颜色|说明|

1 |水果|红色|苹果

1 |水果|橙色|桃

1 |水果|蓝色|蓝莓

1 |水果|绿色|酸苹果

1 |水果|黄色|柠檬

我运行下面的代码:

SELECT 
code, 
type, 
color, 
description 
FROM table 

如果有人给我一个CSV与附加列是没有办法,我可以添加生成字符串错误在其他列字段代码?

我不知道额外的列名称,因为它取决于用户指定它 - 我想要产生的所有效果是,如果他们这样做,我会知道是否有添加额外的字段。

+0

请注意列名“code”和“type”。他们是[保留字](http://dev.mysql.com/doc/refman/5.6/en/keywords.html)。 –

+0

SQL语句与CSV文件无关。解释你在做什么(或你想做什么)。 –

+0

@LorenzoGatti我正在使用LOAD DATA LOCAL INFILE语句在本地上传CSV文件,并且现场检查它们是否有错误 - 将文件加载到我的数据后,我想查找是否有人包含除上述以外的其他列。 – bennyharassi

回答

0

MySQL的LOAD DATA命令

  • 忽略输入文件额外列,并可能产生,如果他们被发现
  • 不给名字输入文件列的警告;它的值赋给表中的列和变量,这是固定的(在tble定义无论是隐性或显性的LOAD DATA命令)

换句话说,你将永远载入代码类型颜色描述进入你的表,不管输入的畸形。

有一种可能的解决方法来查找带有一个或多个额外列的行:将文件加载到具有NULL列的空辅助表中,并使用NULL缺省值。如果CSV文件中的任何一行有5列或更多列,测试表将包含第五列IS NOT NULL;你可以数它们。