2017-08-04 7 views
0

MySQLデータベースから行を取得するために、次のpythonソースファイルがあります。問題は、サブスクライバ表で取得する行が多すぎることです。私はどのように検索し、処理するために行の小さな塊に制限することができますか?制限行数peewee取得

class subinfo(peewee.Model): 
    sub_id = peewee.IntegerField() 
    active = peewee.BooleanField() 
    sub_type = peewee.IntegerField() 
    sub_cat = peewee.TextField() 

    class Meta: 
     database = locdb 

class subscriber(peewee.Model): 
    sub_id = peewee.IntegerField(unique=True, primary_key=True) 
    sub_start = peewee.DateTimeField() 
    sub_end = peewee.DateTimeField() 
    ref_id = peewee.BigIntegerField() 
    class Meta: 
     database = locdb 

for row in subscriber.select(): 
    if(row.sub_start >= peewee.datetime.datetime.now()): 
     sub1, created = subinfo.get_or_create(sub_id=row.sub_id, active=True) 
     if(created == False & sub1.active == False): 
      q = subinfo.update(active=True).where(sub_id=row.sub_id) 
      q.execute() 
    else: 
     subinfo.get_or_create(sub_id=row.sub_id, active=False) 
+0

私は、http([ピーウィー]使用したことがありません。 //docs.peewee-orm.com/en/latest/)、MySqlにもタグを付けます。その解決策は、 'SELECT field FROM table LIMIT 4'のように' SELECT'に 'LIMIT'を追加することだけです。それはどんなことをしますか? – Mawg

+0

または、この質問をご覧ください:https://stackoverflow.com/questions/20067273/how-to-use-peewee-limit – Mawg

答えて

2
for row in subscriber.select() 

最初の100行のためにこれを行います

for row in subscriber.select().limit(100) 

次の100行:

for row in subscriber.select().limit(100).offset(100) 

関連する問題