我有一个问题: -
result = db(db.tag_count.user_id == user_id).select(db.tag_count.name, db.tag_count.count, orderby=~ db.tag_count.count, limitby=(0, 10))
表格定义为
db.define_table('tag_count',
Field('name'),
Field('user_id', db.auth_user),
Field('count', 'integer'),
format='%(title)s')
查询的目的是返回包含tag_count的最大整数值的前10行。
实际上,它返回tag_count的最高字符串值,例如21,2,12,2,即2> 12。我希望21,12,2,1
我使用web2py 2.3.2和sqlite作为数据库。
知道我做错了吗?
答案 0 :(得分:1)
为了将来像我这样的人。感谢Anthony的评论。
原始表未将字段定义为整数并默认为字符串。我意识到我需要一个整数并更新字段。 SQlite无法迁移类型,因此它仍然是一个字符串。
解决方案是导出表,使用整数重新创建表,并确保重新插入类型是整数。
有关详细信息,请参阅here