假设我有下表:
Id (int, Primary Key) | Value (varchar)
----------------------+----------------
1 | toto
2 | foo
3 | bar
我想知道如果给出两个请求,第一个请求的结果必须包含在第二个的结果中,而不执行它们
一些例子:
# Obvious example
query_1 = "SELECT * FROM example;"
query_2 = "SELECT * FROM example WHERE id = 1;"
is_sub_part_of(query_2, query_1) # True
# An example we can't know before executing the two requests
query_1 = "SELECT * FROM example WHERE id < 2;"
query_2 = "SELECT * FROM example WHERE value = 'toto' or value = 'foo';"
is_sub_part_of(query_2, query_1) # False
# An example we can know before executing the two requests
query_1 = "SELECT * FROM example WHERE id < 2 OR value = 'bar';"
query_2 = "SELECT * FROM example WHERE id < 2 AND value = 'bar';"
is_sub_part_of(query_2, query_1) # True
# An example about columns
query_1 = "SELECT * FROM example;"
query_2 = "SELECT id FROM example;"
is_sub_part_of(query_2, query_1) # True
您知道Python中是否有一个模块能够做到这一点,或者是否有可能做到这一点
有趣的问题。我不知道有哪个图书馆会为你做这件事。我的想法:
除此之外,我只能说这是一个有趣的想法。您可能会在DBA上获得更多的输入。这是您正在研究的想法,还是与您正在解决的实际问题有关,比如优化数据库查询?也许您的问题可以用相关信息更新,因为这不是优化查询的常用方法(我想,除非您正在使用DB引擎本身)
相关问题 更多 >
编程相关推荐