Sqlalchemy“like”vs“==”

时间:2016-06-02 16:06:38

标签: sqlalchemy

我继承了一个系统,该系统有很多带有“喜欢”的查询而没有“%”,我想知道它是否只是作为一个相同的操作员在幕后工作。

“query.filter(User.name =='John')”是否与“query.filter(User.name.like('John'))”相同?

结果/性能是否相同?

1 个答案:

答案 0 :(得分:1)

这是一个纯粹的DB问题,它基本上归结为速度更快:

SELECT * FROM User WHERE Name = 'John';

VS

SELECT * FROM User WHERE Name LIKE 'John';

两者都会产生相同的结果,但LIKE会慢一点,因为它会进行模式匹配(vs ==这是完全匹配)。如果你正在使用一个小桌子,你可能不会注意到很多不同,但是对于大桌子(例如recs的mils),它会非常明显。