首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何向任何通用SQL查询添加附加WHERE子句

如何向任何通用SQL查询添加附加WHERE子句
EN

Stack Overflow用户
提问于 2019-02-01 08:52:28
回答 1查看 209关注 0票数 0

我正在用Python编写一个REST到SQL server,并试图向我收到的所有SQL查询添加一个额外的WHERE条件。例如,假设我想筛选b> 4的值的所有查询。我将执行以下操作:

给定一个包含WHERE子句的SQL查询:

SELECT * FROM my_table WHERE a < 5变成了

SELECT * FROM my_table WHERE a < 5 AND b > 4

给定一个不包含WHERE子句的SQL查询:

SELECT * FROM my_table变成了

SELECT * FROM my_table WHERE b > 4

给定一个包含GROUP BY但没有WHERE子句的SQL查询:

SELECT id FROM my_table GROUP BY id变成了

SELECT id FROM my_table WHERE b > 4 GROUP BY id

我还需要处理包含许多其他子句组合的查询,例如LIMIT、HAVING等。

SQL中有没有一种干净的方法来处理所有查询的这样的替换?或者我只需要在Python中使用正则表达式和模式匹配就可以做到这一点?

EN

回答 1

Stack Overflow用户

发布于 2019-02-01 09:15:56

对于您的问题,没有通用的现有解决方案。您提供的示例涵盖了可能的查询空间的一部分,但是SQL允许更复杂的查询,这些查询可能仍然需要不同的解决方案(联接、联合等)。如果可能的话,覆盖所有可能查询的通用解决方案将是非常复杂的。

如果您知道您给出的示例涵盖了特定用例的全部需求,那么是的-使用正则表达式和模式匹配可能是一种很好的方法。我建议将您的解决方案封装在一个类中,该类包含您的查询,并公开允许您添加条件和执行类似操作的操作。

这样,您以后就可以轻松地扩展它,而不会影响该类在代码的其余部分中的使用。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54471426

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档