文章内容

2018/11/5 11:53:10,作 者: 黄兵

SQLAlchemy filter和filter_by写法的一些区别

最经经常在filterfilter_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语句并没有什么不同,写法不同。至于具体性能还没有测试,以后研究一下。


黄兵个人博客原创。

转载请注明出处:黄兵个人博客 - SQLAlchemy filter和filter_by写法的一些区别

分享到:

发表评论

评论列表