2016-06-02 9 views
-1

Ich habe ein System geerbt, das viele Anfragen mit "like" ohne "%" hat und ich frage mich, ob es einfach als gleichberechtigter Operator unter der Haube funktioniert.Sqlalchemy "like" vs "=="

Ist "query.filter (User.name == 'John')" das gleiche wie "query.filter (User.name.like ('John'))"?

Wird sowohl das Ergebnis/die Leistung gleich sein?

Antwort

1

Es ist eine reine Frage DB, es im Grunde darum geht, was ist schneller:

SELECT * FROM User WHERE Name = 'John'; 

vs

SELECT * FROM User WHERE Name LIKE 'John'; 

beide die gleichen Ergebnisse liefern, aber LIKE wird etwas langsamer sein, weil es tun Musterübereinstimmung (vs == welche die genaue Übereinstimmung ist). Sie werden wahrscheinlich nicht viel Unterschied bemerken, wenn Sie mit einem kleinen Tisch arbeiten, aber für große Tische (z. B. Mils von Recs) wird es sehr auffällig sein.