0

我有一个案例,其中 pg-node 中的 SQL 查询基于传递的查询参数,但是由于可以有多个参数在查询中执行不同的操作,我想知道是否有比使用 if 或 switch case 更好的方法来处理这种情况每一种可能的组合?

例子:

  • 如果未传递任何参数,则获取所有 'SELECT * FROM TABLE'
  • 如果传递了排序参数,则获取全部并按值排序
  • 如果传递了地点和排序,则获取所有地点=地点并按值排序
  • 如果 place、sort、allow、person 被传递了 get all where place = place、person = person,按值排序并且允许不为空
  • 如果只有地点和允许但没有排序和人等等......

此示例中“只有”4 个参数,但可能的组合数量越来越多。对于每个新的可能查询参数,可能的组合当然会变得更高。

在这一点上,我一直在为每个可能的组合做 if,因为没有那么多可能的参数,但这对于多个参数来说并不是最优的。我也在看 knex 但这似乎也不能解决问题,如果在每个 .where 之前都需要,等等?有什么建议或图书馆要开始寻找吗?

4

0 回答 0