如何选择MySQL中除一列外的所有列

SQL通过SELECT *(SELECT ALL)子句使选择表中的所有字段变得非常简单。不幸的是,一旦您从列表中删除了一列,SELECT ALL语句就会消失。写出每个列的名称很快就会变得乏味,尤其是当您碰巧要处理包含许多列的表时。如果我们可以选择除一列之外的每一列——通过排除而不是包含进行选择,那会怎么样呢?可以办到。实际上,有两种方法可以做到这一点——一种简单,另一种稍微简单一些。

下面将详细介绍两种方法:

方法1:使用INFORMATION_SCHEMA.COLUMNS表

INFORMATION_SCHEMA提供对数据库元数据、有关MySQL服务器的信息(例如数据库或表的名称、列的数据类型或访问权限)的访问。更具体地说,COLUMNS表提供有关表中列的信息,包括列名。

Sakila示例数据库的film表中包含的列数最多为13。

Navicat使用教程:如何选择MySQL中除一列外的所有列

这是我们使用INFORMATION_SCHEMA.COLUMNS表来获取除original_language_id列以外的所有列的方式:

Navicat使用教程:如何选择MySQL中除一列外的所有列

GROUP_CONCAT函数将所有列名称连接到一个逗号分隔的字符串中。然后,我们可以将字段替换为空字符串!

执行查询

要克服的一个小障碍是MySQL查询不能接受动态列名。解决方案是采用准备好的声明。下面是设置@sql变量、准备语句并执行的代码:

Navicat使用教程:如何选择MySQL中除一列外的所有列

在查询中插入列、表和模式信息会产生我们想要的结果:

Navicat使用教程:如何选择MySQL中除一列外的所有列

方法2:使用Navicat

Navicat等数据库开发和管理工具的主要目标是提高生产力。因此,Navicat旨在使您的工作尽可能快速和轻松。为此,借助“代码完成”和可自定义的代码段,SQL编辑器可帮助您更快地编写代码,这些代码段可为关键字提供建议,并消除重复代码。如果这还不够的话,Navicat还提供了一个称为Query Builder的有用工具来可视化地构建查询。它使您仅使用SQL的一点点知识就可以创建和编辑查询。虽然Query Builder主要销售给更多的新手程序员,但是精通SQL的人仍然可以从Query Builder中完成某些任务。这样的任务之一就是选择列。

在查询生成器中,表名称旁边有一个复选框,用于选择其所有列。如果单击它,则可以简单地取消选中original_language_id字段以将其从列列表中删除:

Navicat使用教程:如何选择MySQL中除一列外的所有列

单击确定按钮,然后关闭对话框并将SQL代码添加到编辑器中:

Navicat使用教程:如何选择MySQL中除一列外的所有列

与手工编写代码相比,使用查询生成器创建查询具有一些优势:

  • 它最大程度地减少输入错误
  • 它生成易于阅读的格式化SQL

结论

在今天的文章中,我们学习了几种技术来选择表中的每一列,但只能选择一两个。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值