创建SQL查询的设计模式

ogu*_*gun 3 sql t-sql mysqli database-design design-patterns

我公司几乎每个项目都有搜索面板和自定义过滤器。当项目的过滤器过多时,很难创建。

是否有用于创建用于过滤器的自定义sql查询的良好设计模式?

我总是这样写:

commandText = "SELECT * FROM XXX "

innerJoinCommand = ""
whereCommand = ""

if (??.length > 0)
  whereCommand += "AND ??? "

if (??.Count > 0)
  innerJoinCommand += "??? "

//...

if (innerJoinCommand.length > 0)
  commandText += innerJoinCommand

if (whereCommand.length > 0)
  commandText += "WHERE " + whereCommand
Run Code Online (Sandbox Code Playgroud)

Don*_*oby 5

这种事情通常是通过使用Builder模式来完成的

如果您想支持非常复杂的查询,则它可能是一个相当复杂的构建器,并且其他模式可能会起作用,但这就是我要开始的地方。