我正在将Python 2.7与Peewee一起使用。目前,我需要使用Peewee来执行以下SQL查询:

select
    a,
    b,
    substring(c, 1, 3) as alias1,
    count(substring(c, 1, 3)) as alias2
from Table
where <some where condition, not relevant here>
group by a, alias1


我的第一个问题是如何使用Peewee执行子字符串。我已经搜索了文档,到目前为止,还不走运。

因此,基本问题是:如何使用Peewee执行substring SQL函数?如果有人可以给我一些如何使用Peewee执行上述整个查询的指导,那也将非常好。

最佳答案

好。

经过搜索和搜索,我终于找到了它。只需使用fn.substr即可完成。

可以在here中找到对该功能的引用。奇怪的是,fn documentation page中没有相同功能的文档(此处仅记录了方法over)。

为了回答我自己的问题,SQL查询将类似于(未经测试):

TableModel.select(
   a,
   b,
   fn.substr(c, 1, 3).alias('alias1'),
   fn.count(fn.substr(c, 1, 3)).alias('alias2')
) \
.where(<some where condition, not relevant here>) \
.group_by(a, fn.substr(c, 1, 3))


希望这可以在将来对某人有所帮助。

关于python - 在Peewee中执行子字符串查询,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35501683/

10-15 21:17