Skip to main content
 首页 » 编程设计

python之如何在 SQLite 中使用 python 语句作为 SELECT 条件

2025年05月04日7lautakyan007

通常,我们只能使用SQL 语句作为SELECT 条件(使用WHERE 子句)。然而,有时使用 python(或任何调用 SQL 的语言)语句作为 SELECT 条件是有用的。

比如有一个例子in the document of sqlite3 module of python ,其中一个结构 Point 被存储到一个表中。然而,很难使用结构Point 来查询表。比如说,我想执行 SELECT p FROM table WHERE P.x=4 选择所有 x 坐标等于 4 的点。但是 SELECT 语句将不起作用,因为 P.x 是 python 语句而不是 SQL 语句。

另一个例子是当 SELECT 条件对于 SQL 语言来说太复杂时。比如说,我想选择 mod 4 为 3 的所有整数或类似的东西。

那么,有什么想法可以这样做吗?谢谢!

编辑:关于 zam664 的回答,第一个示例肯定可以使用 P_X 和 P_Y。但是,如果 p 是一个未知长度的列表(可以使用适配器存储在表中)并且我想SELECT p FROM table WHERE 2 in p。我认为这是一个有用的案例。

请您参考如下方法:

您必须在 SQL 和 Python 代码之间分担负载。您需要正确地构建表中的数据,以便 SQL 可以获取大部分 if,然后记录检查其余的复杂内容。

您应该能够在 SQLite 中获得大部分内容,以便 SQL 查询能够正常工作。你只需要分解你的数据。例如,您的带有 x 和 y 字段的点需要在 SQLite 中拆分为 2 个字段,如 P_X 和 P_Y。

SQLite 是关系型 DBMS 而不是对象 DBMS。如果您需要一个对象 DBMS,那么 SQLite 是不适合该任务的产品。