SQLAlchemyのselect

  • March 26, 2007 21:29

最近Django以外でPythonからDBを扱うのにSQLAlchemyを使うようにしているのだけど、

SELECT * FROM table_name WHERE hoge IN ("huga", "foo");

のような INの書き方がぱっと出なかったのでメモ。

bar = db.table_name.select(db.table_name.c.hoge.in_("huga", "foo"))

のように書きます。ほかにも

bar = db.table_name.select(db.table_name.c.hoge.between(0, 100))
bar = db.table_name.select(db.table_name.c.hoge.startswith("huga"))
bar = db.table_name.select(db.table_name.c.hoge.endswith("huga"))
bar = db.table_name.select(db.table_name.c.hoge.like("%huga%"))
bar = db.table_name.select(func.substr(db.table_name.c.hoge, 2, 1) == "h")

あたりは忘れそう。。。。

ドキュメントの A step-by-step SQLAlchemy tutorial のSelect Statementsにまとまっています。