SQL通过SELECT *(SELECT ALL)子句使选择表中的所有字段变得非常简单。不幸的是,一旦您从列表中省略了一列,SELECT ALL语句就会消失。写出每个列的名称很快就会变得乏味,尤其是当您碰巧要处理包含数十个列的表时。如果我们可以选择除一列之外的每一列怎么办-通过排除而不是包含进行选择?可以办到。实际上,有两种方法可以做到这一点-一种简单,另一种难一点。这些将是今天文章的重点。
方法1:使用INFORMATION_SCHEMA.COLUMNS表
INFORMATION_SCHEMA提供对数据库元数据的访问,有关MySQL服务器的信息,例如数据库或表的名称,列的数据类型或访问权限。更具体地说,COLUMNS表提供有关表中列的信息,包括列名。
这是我们使用INFORMATION_SCHEMA.COLUMNS表来获取除original_language_id列以外的所有列的方式:
GROUP_CONCAT函数将所有列名称连接为单个逗号分隔的字符串。然后,我们可以将字段替换为空字符串!
执行查询
要克服的一个小障碍是MySQL查询不能接受动态列名。解决方案是采