从大表中选择非空字段

Posted

技术标签:

【中文标题】从大表中选择非空字段【英文标题】:Select not null field from large table 【发布时间】:2015-11-29 10:28:06 【问题描述】:

我有一个包含大约 100 列的表,我需要从表中选择一行,但只包含非空值的字段。 例如,第 1 行仅包含 50 个非空值字段和 50 个空值字段。我只需要选择 50 个非空值的字段。

我用mysql、symfony2、学说

真诚的

【问题讨论】:

MySQL SELECT only not null values 的可能重复项 不能查询不同数量的列(字段)。任何 mysql 查询将始终返回相同数量的列!因此,如果您请求 100 个字段,无论您在 WHERE 子句的任何变体中放入什么内容,它都会返回 100 个字段。任何过滤器或条件仅影响返回的记录数和值,而不会更改返回的列数。 我有一个包含 100 列的表。当我在 Doctrine 中执行此操作并执行时: $entity = $em->getRepository('entityname')->find($id);返回的结果当然是一个包含空值和非空值的组合。我想过滤结果以仅获取非空值并将它们放入变量中,然后在 twig 中将它们用作 DropDownList。 下拉列表是什么? 对我来说最重要的是只选择非空字段,然后,我会将这些值放入一个变量(数组)中,我将在 twig 中使用它并放入它的值在下拉列表中 【参考方案1】:

此问题已在此处的另一个问题中得到解答。请查看下面的链接。

MySQL SELECT only not null values

【讨论】:

这应该是一条评论。 请问有没有一种方法可以只选择非空值而不指定所有列名,因为100列太多了 我有一个包含 100 列的表。当我在 Doctrine 中执行此操作并执行时: $entity = $em->getRepository('entityname')->find($id);返回的结果当然是一个包含空值和非空值的组合。我想过滤结果以仅获取非空值并将它们放入变量中,然后在 twig 中将它们用作 DropDownList。

以上是关于从大表中选择非空字段的主要内容,如果未能解决你的问题,请参考以下文章

优化从大表中选择

MySQL nodejs 在从大表中选择数据时崩溃

MySQL - 从大表中选择随机行

从大表中有效地选择不同的(a,b)

MySQL准入规范及容量评估

mysql中一个数据表只可以定一个非空字段吗