【问题标题】:Filter SQL Columns against an entire columns contents? [closed]针对整个列内容过滤 SQL 列? [关闭]
【发布时间】:2020-09-08 18:50:01
【问题描述】:

我需要针对不同表中的所有 VARCHAR 过滤整个表。我曾想过在 foreach 循环中抓住它们,但我会为每一行进行。这是一个大型数据库,可以返回超过 10k 的结果,所以我认为这很糟糕,因为返回数据需要一段时间。

我的主要想法是在 SQL 中进行过滤以加快速度。我唯一的另一个想法是从初始表中获取数据,将其放入数组中,然后将每个数据表行值作为字符串检查 C# 中的整个数组。

速度并不是真正的优先事项,但它不能不被接受。我担心要处理第一段中的内容,因为它在用户计算机上可能很费力。有人能告诉我怎样才能让它更有效率吗?或者这会是我在 SQL 中的唯一选择吗?

【问题讨论】:

  • 一个简单的连接就可以满足您的需求。请添加几行示例数据和预期的结果。
  • 你用的是什么数据库?
  • 如果您的数据和过滤器都在数据库中,并且您不使用 SQL 来过滤另一个,那么您不应该使用数据库。

标签: c# sql model-view-controller


【解决方案1】:

我会推荐exists。像这样的:

select b.*
from bigtable b
where exists (select 1 from smalltable s where s.string = b.string);

为了性能,请确保smalltable(string) 上有索引。

【讨论】:

    猜你喜欢
    • 2015-05-24
    • 1970-01-01
    • 1970-01-01
    • 2015-11-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-26
    相关资源
    最近更新 更多