SQLAlchemy équivalent à SQL “COMME de la” déclaration
Tags colonne a des valeurs comme la "pomme banane orange" et "fraise banane citron". Je veux trouver la SQLAlchemy instruction équivalente à
SELECT * FROM table WHERE tags LIKE "%banana%";
Que dois-je passer à Class.query.filter()
pour ce faire?
Vous devez vous connecter pour publier un commentaire.
Chaque colonne a
like()
méthode, qui peut être utilisé dansquery.filter()
. Étant donné une chaîne de recherche, ajouter un%
caractère de chaque côté à la recherche comme une sous-chaîne dans les deux directions.tags
table, où vous stockez nom de la balise et d'autres info tag, et vous aureztask_tags
table, ce qui aura un enregistrement pour chaque balise ajouté à la tâche. Si la tâche avec 2 balises aurez juste 2 enregistrements danstask_tags
table.Ajoutant à la réponse ci-dessus, quiconque cherche une solution, vous pouvez également essayer de 'match' de l'opérateur au lieu de 'j'aime'. Ne veux pas être biaisé, mais il a parfaitement fonctionné pour moi dans Postgresql.
Il hérite des fonctions de base de données tels que CONTIENT et MATCH. Cependant, il n'est pas disponible dans SQLite.
Pour plus d'info, allez Commune Opérateurs De Filtre
essayer ce code
L'utilisation de PostgreSQL
like
(voir accepté la réponse ci-dessus) d'une certaine manière ne fonctionne pas pour moi bien que les cas appariés, maisilike
(cas jensensisitive comme) n'.ILIKE
est la casse de la version deLIKE
, de sorte que vos entrées diffèrent seulement en cas.