如何将其转换为SQLObject:SELECT DISTINCT columnname WHERE

时间:2010-11-07 22:56:49

标签: python sql sqlobject

我一直在浏览sqlobject和sqlbuilder文档和论坛,我似乎无法掌握那里的信息。

我有一个我需要的特定SQL查询:

select distinct author from blogtable where keyword = "dust";

多位作者可以发布多个主题。

如果我使用原始sql查询,查询将在MySQL数据库上运行。但我似乎无法理解为了在SQLObject中正确使用它必须做些什么。

我看到大量的sqlbuilder引用,但手册页不是很广泛。谷歌小组中提供的示例也说得好像SQLbuilder就是答案,但同样,我也无法理解任何具体的例子(对于我的问题)。

精通SQLObject的人能否向我解释如何在SQLObject中实现上述SQL? 如果不可能,我可以通过SQLObject以任何方式将原始sql传递给基础数据库吗?

1 个答案:

答案 0 :(得分:1)

我对SQLObject没有多少经验,但是从docs我推断它应该是这样的:

class Blog(SQLObject):
    class sqlmeta:
        table = 'blogtable'

    author = StringCol()
    keyword = StringCol()

Blog.select(Blog.q.keyword=='dust', distinct=True)

第2版

select = Select(
    [Blog.q.author],
    Blog.q.keyword=='dust',
    distinct=True,
)

sql = connection.sqlrepr(select)

for author in connection.queryAll(sql):
    print author