【问题标题】:SELECT statement to show extra columnsSELECT 语句以显示额外的列
【发布时间】:2015-06-25 00:22:41
【问题描述】:

表1

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

1 |水果 |红色 |苹果

1 |水果 |橙色 |桃子

1 |水果 |蓝色 |蓝莓

1 |水果 |绿色 |酸苹果

1 |水果 |黄色 |柠檬

我正在运行下面的代码:

SELECT
code,
type,
color,
description
FROM table

如果有人向我发送带有附加列的 CSV,我是否可以添加一个代码,在附加列字段中生成字符串 Error

我不知道额外的列名称,因为它是由用户指定的——我想要产生的效果是,如果他们知道,我会知道是否添加了额外的字段。

【问题讨论】:

  • 注意列名codetype。他们是reserved words
  • SQL 语句与 CSV 文件无关。解释你在做什么(或你想做什么)。
  • @LorenzoGatti 我正在使用 LOAD DATA LOCAL INFILE 语句在本地上传 CSV 文件并抽查它们是否存在错误——将文件加载到我的数据中后,我想查找是否有人包含额外的列除了上述之外。

标签: mysql sql csv select


【解决方案1】:

MySQL 加载数据命令

  • 忽略输入文件中的额外列,如果发现它们可能会产生警告
  • 不给输入文件列命名;它将它们的值分配给固定的表列和变量(在 tble 定义中隐含或在 LOAD DATA 命令中显式)

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-10
    • 1970-01-01
    • 2017-01-21
    相关资源
    最近更新 更多