在 MySQL 中选择除了某一列以外的所有列

2020 年 1 月 23 日,由 Robert Gravelle 撰写

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

方法1:使用INFORMATION_SCHEMA.COLUMNS表

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

The Sakila示例数据库的电影表中包含了最多的列13列。

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

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

执行查询

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

SET @sql = CONCAT('SELECT ',

(SELECT REPLACE(GROUP_CONCAT(COLUMN_NAME), ',', '')

FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = '

AND TABLE_SCHEMA = ''),

' FROM

PREPARE stmt1 FROM @sql;

EXECUTE stmt1;

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

方法2:使用Navicat

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

在查询创建工具中,表名称旁边有一个复选框,用于选择其所有列。 如果单击它,则只需取消选中original_language_id字段即可将其从列列表中删除:

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

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

减少错别字

生成易于阅读的格式化SQL

总结

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

有兴趣进一步了解Navicat for MySQL吗? 您可以免费试用14天,以进行评估!

mysql选取除某一列的所有行_在 MySQL 中选择除了某一列以外的所有列相关推荐

  1. mysql除了两列其他都选_从MySQL的两列中选择不同的名称,然后在单列中显示结果...

    为此,请使用UNION.让我们首先创建一个表-mysql> create table DemoTable ( Name1 varchar(100), Name2 varchar(100) ); ...

  2. mysql必知必会看完看什么_《MySQL必知必会》读书笔记

    一.了解MySQL 1.什么是数据库? 数据库是一种以某种有组织的方式存储的数据集合. 2.模式(schema):关于数据库和表的布局及特性的信息. 3.列:正确的将数据分解为多个列极为重要.通过把它 ...

  3. mysql id 不在集合里面_MySQL,PHP:从表中选择*,其中id不在数组中

    所以我现在有一个数据库表,我试图选择所有记录,除了包含在我所做的数组中的所有记录.正如一些背景方面:MySQL,PHP:从表中选择*,其中id不在数组中 在有问题的数据库表的结构是: server_s ...

  4. mysql时间相减得到天数保留两位_[转]Mysql日期函数-日期相减返回天数

    MySQL datediff(date1,date2):两个日期相减 date1 - date2,返回天数. select datediff('2008-08-08', '2008-08-01'); ...

  5. 老男孩mysql运维dba实战21部完整版_老男孩MySQL DBA 运维课程全套,资源教程下载...

    课程名称 老男孩MySQL DBA 运维课程全套 课程目录 01-第一部-MySQL基础入门(21节) 02-第二部-老男孩MySQL多实例安装与企业应用场景(10节) 03-第三部-老男孩MySQL ...

  6. 老男孩mysql运维dba实战21部完整版_老男孩MySQL高级专业DBA实战课程/高级运维DBA课程/MySQL视频教程 零基础全套...

    对于老男孩的视频教程我是由衷的喜欢,这套课程接近于零基础,但是最好还是具备一些Mysql基础再来学习效果会更好一些,论坛中也有一些Mysql基础课程,大家可以找一下! -------课程目录----- ...

  7. mysql数据库应用从入门到精通 王飞飞_《MYSQL数据库应用从入门到精通(第2版)(含盘)》王飞飞 崔洋 贺亚茹著【摘要 书评 在线阅读】-苏宁易购图书...

    第1篇  MySQL数据库基础篇 第1章  数据库概述 1.1  关于数据库的基本概念 2 1.1.1  数据管理技术的发展阶段 2 1.1.2  数据库系统阶段涉及的概念 3 1.1.3  数据库技 ...

  8. mysql数据库计算两列数据的和_在sql中对两列数据进行运算作为新的列操作

    如下所示: select a1,a2,a1+a2 a,a1*a2 b,a1*1.0/a2 c from bb_sb 把a表的a1,a2列相加作为新列a,把a1,a2相乘作为新列b,注意: 相除的时候得 ...

  9. 老男孩mysql运维dba实战21部完整版_老男孩Mysql DBA高级运维系列课程(16部)

    × 新功能提醒 网站新接入了第三方搜索服务,赞助会员免费使用,非赞助会员每次消耗30 积分 第三方服务链接由专人维护检查,资源更全,质量更好,保证有效,欢迎使用 |- 16-第十六部-老男孩MySQL ...

最新文章

  1. Winform 打开下载的文件
  2. hisi mmz内存管理
  3. 第10章 例题 7-4 汉诺(Hanoi)塔问题
  4. mac php-frm xampp_XAMPP for Mac(Apache服务器环境套件)
  5. 《Git版本控制管理(第2版)》——4.3 Git在工作时的概念
  6. 基于Discuz的原生态MVC框架Uxf
  7. 博弈论与最优化的关系
  8. 求两个等长升序序列的中位数
  9. 微星刀锋 无法进入bios_所有键都无法进入bios,微星主板无法进入bios-
  10. 用python做透视表_Python Pandas透视表(pivot_table)详解
  11. 12月,最火热的区块链金融技术峰会!错过又要等一年!!
  12. WS4665D-8/TR单通道负载开关WILLSEM封装DFN2x2-8L
  13. 用python做头像_如何利用python制作微信好友头像照片墙?
  14. 【SIGGRAPH】用【有说服力的照片真实】技术实现最终幻想15的视觉特效
  15. 关于MUR1100ERLG
  16. LPA* 路径搜索算法介绍及完整代码
  17. 【数据结构】实验项目:顺序表,也就那么回事
  18. 抖小火山视频服务器维护中,抖音、火山小视频、悟空问答昨天都崩了
  19. Linux系统从零到高手的进阶心得
  20. MySQL基础 , 基本SQL,SELECT查询详解

热门文章

  1. 开启虫洞的频率_仅用几段音频、扬声器和灯就能打开“虫洞”,这是真的?内附视频...
  2. 对话图灵奖得主Jeffrey Ullman:数据库不会进入周期性的坏循环|《新程序员》
  3. 现代控制—状态反馈极点配置函数(计算反馈增益k)
  4. FindVariableFeatures(高可变基因)和FindMarkers(差异表达基因)的区别
  5. Lagrange插值多项式算法
  6. bootstrap图片叠加_详解Bootstrap四种图片样式
  7. 我在印尼工作的日子-工作餐食
  8. Scratch实现正方形幻影效果
  9. ORB-SLAM2源码特征点提取
  10. Visual Studio 2022 下载地址