通常,我们只能使用SQL语句作为SELECT条件(使用WHERE子句)。但是,使用python(或者任何引发SQL的语言)语句作为SELECT条件有时很有用。如何在SQLite中使用python语句作为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
。我认为这是一个有用的案例。
只是一个说明;由于数据库不会执行Python,而只会执行SQL(即Python查询需要自动转换为SQL),所以如果您使用Python编写它们,那么在SQL中表达的任何查询都会过于复杂。关于复杂性,Python可能会帮助你做的唯一事情就是自动完成数据库中查询的一部分,并在得到结果后自动执行代码中的一部分。 – 2012-02-10 06:54:33