通常,我们只能使用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
,那该怎么办?我认为这是一个有用的案例。
答案 0 :(得分:0)
您必须在SQL和python代码之间分配负载。您需要正确地构建表中的数据,以便SQL可以获得大部分if,然后记录检查其余的复杂内容。
您应该能够在SQLite中获得大部分内容,以便SQL查询可以正常工作。您只需要提高数据量即可。例如,你的x和y字段的点需要在SQLite中拆分为2个字段,如P_X和P_Y。
SQLite是一个关系型DBMS,而不是一个对象DBMS。如果您需要一个对象DBMS,则SQLite是该任务的错误产品。
答案 1 :(得分:0)
由于数据存储为;分隔的字符串列表,您应该可以执行以下操作:
SELECT point FROM test WHERE point LIKE '%x=4%
预约使用不正确的表名和列名。