Chr*_*ris 5 regex django 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}$')
Run Code Online (Sandbox Code Playgroud)
如何在 Django 中执行以下查询?
INSERT INTO StringValues (val) VALUES ('^[a-z]{3}$');
SELECT * FROM StringValues WHERE 'abc' ~* val;
Run Code Online (Sandbox Code Playgroud)
IE 正则表达式在表中,我想要与我的字符串匹配的行。
在我的具体情况下,性能不是问题 - 可能需要比较不到 100 行 - 但如果编译每个正则表达式是一个非常糟糕的主意,也欢迎对此性能的评论,谢谢。