如何使用 MySQL 查询从表中选择除一列之外的所有内容? [复制]

Posted

技术标签:

【中文标题】如何使用 MySQL 查询从表中选择除一列之外的所有内容? [复制]【英文标题】:How to select all from table except one column using MySQL query? [duplicate] 【发布时间】:2020-09-17 17:27:06 【问题描述】:

我想使用 mysql 从表中选择除一列之外的所有列。 我知道我们可以使用它来选择所有列

<?php
$query = SELECT * FROM posts;
?>

但是我怎样才能从表格中保留一个特定的列呢?

【问题讨论】:

您是否有什么特殊原因不想选择所有列?这是讨论此问题的链接:***.com/questions/9122/…。此问题可以标记为重复。 该问题也与PHP无关,而且PHP无效,因此应该删除PHP标签和代码。 ????如果您刚刚开始使用 PHP 并想构建应用程序,我强烈建议您查看各种 development frameworks 以查看是否可以找到适合您的风格和需要。它们有各种风格,从 Fat-Free Framework 这样的轻量级到像 Laravel 这样的更全面。这些为您提供了具体的工作示例以及如何编写代码和组织项目文件的指导。 这不是有效的 PHP,即使是,它 仍然 不会从数据库中获取任何内容,因为您没有定义数据库连接,并且您不要准备或执行查询。 【参考方案1】:

您不使用*,而是列出表格上的所有列,省略您不想要的列

MySQL 有一个信息方案,可以列出表中的所有列;您可以查询它并使用返回的结果粘贴到您的代码中,这样您就不必输入它。例如,这样写:

SELECT CONCAT(column_name, ',') FROM information_schema.columns WHERE table_name = 'posts' AND column_name NOT IN ('column name to exclude')

然后将结果复制并粘贴到您的代码中,删除最后一个逗号

许多查询工具也将帮助您以这种方式制定查询,或向您显示它们正在运行的查询,您可以将其复制/粘贴到您的代码中

您可能会发现通过一个库来访问数据库更容易,该库允许您将表视为对象;我不是 php 程序员,但在 C# 中,我们有实体框架之类的东西,一个库,我们可以在其中使我们的代码端 Person 对象具有 4 个属性(名称、年龄、工作、SSN)并告诉它它由tblPerson 表(有 5 列)并且在执行查询时不会下载第 5 列。很确定 php 会有这样的东西,这意味着你不必花费你的生命来写无休止的SELECT blah, blah2, blah3 ...

有时不使用 * 有一个好处,因为如果有人将一列添加到与另一列同名的表中,您的查询和代码将继续工作。如果你有:

SELECT * FROM person JOIN address ON ...

并且人员有一个在前端应用程序中使用的状态列,如果后来有人添加另一个状态列到地址,您将开始返回两个状态列,您的前端可能无法正确处理第二个;它可能会覆盖第一个或导致崩溃。如果您避免使用 * 并按名称选择您想要的列,即使使用新列,系统也会继续工作

【讨论】:

以上是关于如何使用 MySQL 查询从表中选择除一列之外的所有内容? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 group by(基于一列)从表中选择多列,在 hive 查询中具有和计数

推动从表中选择一列

如何将 summarise_each 应用于除一列之外的所有列? [复制]

使用块读取大型csv文件时如何在连接块之前处理除一列之外的所有列

SQL查询:从表中删除除最新N之外的所有记录?

通过在Oracle中分组一列从表中选择数据