当我想选择除 foo 和 bar 之外的所有列时,我通常做的只是在 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/