文章内容
2018/11/5 11:53:10,作 者: 黄兵
SQLAlchemy filter和filter_by写法的一些区别
最经经常在filter
和filter_by
之间切换,有的时候很容易搞混,今天总结一些内容,记录如下:
filter()
:把过滤器添加到原查询上,返回一个新查询
filter_by()
:把等值过滤器添加到原查询上,返回一个新查询
可以看到filter()
和filter_by()
的一个异同,一个是过滤器,一个是等值过滤器,两个具体有什么区别呢?
看写法:
filter()
:
PhoneNumber_List.query.filter(PhoneNumber_List.id==item)
翻译之后的SQL语句:
SELECT phonenumber_list.id AS phonenumber_list_id, phonenumber_list.`PhoneNumber` AS `phonenumber_list_PhoneNumber`, phonenumber_list.country_flag_id AS phonenumber_list_country_flag_id, phonenumber_list.group_number AS phonenumber_list_group_number FROM phonenumber_list WHERE phonenumber_list.id = %s
filter_by()
:
PhoneNumber_List.query.filter_by(id=item)
翻译之后的SQL语句:
SELECT phonenumber_list.id AS phonenumber_list_id, phonenumber_list.`PhoneNumber` AS `phonenumber_list_PhoneNumber`, phonenumber_list.country_flag_id AS phonenumber_list_country_flag_id, phonenumber_list.group_number AS phonenumber_list_group_number FROM phonenumber_list WHERE phonenumber_list.id = %s
可以看到两者翻译成SQL语句并没有什么不同,写法不同。至于具体性能还没有测试,以后研究一下。
黄兵个人博客原创。
评论列表