mysql - 是否可以反转 SQL 中的 select 语句?

标签 mysql sql database select

当我想选择除 foobar 之外的所有列时,我通常做的只是在 select 语句中明确列出所有其他列。

从...中选择 a、b、c、d、...

但是如果表格有十几个列,这对于简单的方法来说是一个繁琐的过程。相反,我想做的是类似于以下伪语句:

select * except(foo, bar) from ...

我还想知道,如果有一个函数可以从多个列组成的结果中过滤出行,如果多个行在所有对应的内容相同列。换句话说,重复的行将被过滤掉。

------------------------
A     | B      | C      
------------------------    ====>    ------------------------
A     | B      | C                   A      | B      | C
------------------------             ------------------------

最佳答案

您可以查询 INFORMATION_SCHEMA 数据库并获取该表的列列表(两列除外),例如:

SELECT REPLACE(GROUP_CONCAT(COLUMN_NAME), '<foo,bar>,', '') 
FROM INFORMATION_SCHEMA.COLUMNS 
WHERE TABLE_NAME = '<your_table>' AND TABLE_SCHEMA = '<database>';

获得列列表后,您可以在选择查询中使用它。

关于mysql - 是否可以反转 SQL 中的 select 语句?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40171743/

相关文章:

php - 获取 Woocommerce 中带有空简短描述的所有产品 ID

php - Lumen Illuminate Http 客户端请求无法解析的依赖关系

sql - 为什么 OS X 会终止在终端中立即执行的进程?

sql - 如何遍历PLSQL Select的结果

sql - 为什么当我使用临时表时,oracle 中的查询需要更长的时间?

mysql - 获取外键引用的值

mysql - 使用 mysql 正则表达式在 json 中查找 id

mysql - 将不同的值连接到一列中

php - 一次将多个值插入 MySQL

ruby-on-rails - 创建 ruby​​ 数据库时惰性符号绑定(bind)失败