私はPostgreSQLデータベースにBagの種類を格納しています:["Clutch Bags"、 "Shoulder Bags"、 "Tote Bags"]。私はPythonフラスコベースのAPIエンドポイントを使って、ユーザーが "Red Shoulder Bag"や "Gray Clutch Bag"のような検索語を提供できるようにしています。今私はSQLAlchemyを使ってクエリを書いて、これらの与えられた検索語のために、私のバッグテーブルでその値を探すことができるようにしたいと思います。私はこれを書いたが、ユーザが入力した検索文字列が複数ある場合にのみ動作しますが、このdoesntの仕事は、ユーザーが「灰色のクラッチバッグ」SQLAlchemy部分文字列フィルタリング
categories = db.session.query(Bags.id) \
.filter(literal(search_string).ilike(func.concat('%', Bags.type, '%')))\
.all()
は、どのように私は取り除くことができます入力した場合に、データベース内袋タイプから末尾の「S」フィルタリングの時間?シンプルLIKE
または「含んでいる」と一致する「クラッチバッグ」と「灰色のクラッチバッグ」のための方法はありません
type_in_db = "Clutch Bags"
search_string = "Grey Clutch Bag"
if type_in_db.rstrip('s') in search_string:
return type_in_db
、search_string'で 'func.lower(Bags.typeが)' __ .__含まSEARCH_STRINGに等しい(func.lower (Bags.type)) 'というエラーメッセージが表示され、[' str .__ contains__'は別の文字列が必要です。](https://docs.python.org/3/reference/expressions.html#in)。 –
クローズドパレンもあまりにも多いようです。 – coralvanda
私はPostgreSQLデータベースにBagの種類を格納していると言いますが、タグはmysqlと言っていますか? – middlestump