SELECT语句显示额外的列

时间:2015-06-24 13:52:28

标签: mysql sql csv select

表1

代码|输入|颜色|说明|

1 |水果|红色|苹果

1 |水果|橙色|桃

1 |水果|蓝色|蓝莓

1 |水果|绿色|酸苹果

1 |水果|黄色|柠檬

我正在运行以下代码:

SELECT
code,
type,
color,
description
FROM table

如果有人向我发送了包含其他列的CSV,那么我可以添加一个代码,在其他列字段中生成字符串错误吗?

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

1 个答案:

答案 0 :(得分:0)

MySQL LOAD DATA命令

  • 忽略输入文件中的额外列,如果找到它们可能会发出警告
  • 不为输入文件列指定名称;它将它们的值分配给表列和变量,这些表和变量是固定的(隐含在tble定义中或隐含在LOAD DATA命令中)

换句话说,您将始终将代码类型颜色描述加载到您的表格中,不管输入的畸形。

有一种可能的解决方法可以找到包含一个或多个额外列的行:将文件加载到一个空的辅助表中,其中包含5列且默认为NULL的列。如果CSV文件中的任何行包含5个或更多列,则测试表将包含第五列IS NOT NULL;你可以数数。