2
正規表現を渡しているときに、Django ORMでPostgreSQL正規表現検索を行う方法を理解しています。正規表現がデータベーステーブルにあり、その文字列を渡しているときに相当するのは何ですか?正規表現がデータベースにあり、その値が文字列の場合、Django ORM Postgresql正規表現を使用してください。
たとえば、以下のPostgreSQLとDjangoのORMのクエリは同等です:
INSERT INTO StringValues (val) VALUES ('abc');
SELECT * FROM StringValues WHERE val ~* '^[a-z]{3}$';
# is the same as
StringValues.objects.filter(val__regex=r'^[a-z]{3}$')
あなたはジャンゴで次のクエリを行うことができますどのように?
INSERT INTO StringValues (val) VALUES ('^[a-z]{3}$');
SELECT * FROM StringValues WHERE 'abc' ~* val;
I.E.正規表現はテーブルの中にあり、私は自分の文字列と一致する行が必要です。
私の具体的なケースでは、パフォーマンスは問題ありません。おそらく100行未満が比較されますが、すべての正規表現のコンパイルが本当に悪い考えであれば、このパフォーマンスのコメントも歓迎です。
私はあなたがこのソリューションを探していると信じて:https://stackoverflow.com/a/31689831/1971587 –
まさに - 謝罪、私は受け入れ答えとして、以下の私の答えをマークし忘れてい。 – Chris