通常,我們只能使用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