【问题标题】:SQL Search Query with Optional Field and different conditions具有可选字段和不同条件的 SQL 搜索查询
【发布时间】:2013-09-09 13:05:03
【问题描述】:

我有一个搜索,用户可以在其中指定多个搜索条件。在某些条件字段中,他们可以选择是否要搜索特定值或范围。例如,用户可以在名为“Week ending”的字段上进行搜索。用户可以选择该字段的值是特定日期,还是介于两个日期之间。

每个条件字段都是可选的。

我正在努力寻找一种方法来创建一个 SQL 查询来支持这样的事情。我能看到的最简单的方法是加载支持每种不同组合的不同查询,但这太可怕了,必须有更好的解决方案。

我尝试使用 IFNULL 和 COALESC 执行此操作,但遇到的问题是如何处理 > 和 = 的可选存在。

有什么想法吗?

谢谢。

【问题讨论】:

  • 您能检查哪些字段已完成,并有一个预先形成的 SQL 来处理每个场景吗?
  • 提供一下代码
  • 最好提供一些代码以获得良好的响应!

标签: c# .net sql visual-studio-2010


【解决方案1】:

如果您使用 LINQ-To-SQL 或 LINQ-To-Entities,您可以使用每个可选搜索字段动态构建 LINQ 语句。

或者,您可以在将 SQL 查询字符串传递给数据库之前构建它。虽然这是一种相当过时的方法,但您不会像 LINQ 那样进行编译时检查。如果您确实走这条路,请务必使用 SQL 参数,而不是将搜索参数附加到您的查询中。

我真的会尽量避免重复任何查询代码,坚持DRY 原则,以后您会省去很多维护痛苦!

【讨论】:

    猜你喜欢
    • 2012-06-18
    • 1970-01-01
    • 2017-10-01
    • 2015-09-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-03
    相关资源
    最近更新 更多