Django:Sqlite和regex在查询中

2024-09-27 09:28:45 发布

您现在位置:Python中文网/ 问答频道 /正文

我将Django与PostgreSQL数据库一起使用,此查询运行良好:

REQUEST_TYPE_ENTRANCE = 1
REGEX_ENTRANCE = r'^{0},|,{0},|,{0}$|^{0}$'.format(
    REQUEST_TYPE_ENTRANCE
)
entrance_registers = EntranceRegister.objects.filter(authorized_requests__regex=REGEX_ENTRANCE)

但是当我用SQLite数据库运行测试时,它没有返回任何结果。在

以下是print EntranceRegister.objects.filter(authorized_requests__regex=REGEX_ENTRANCE).query的输出:

^{pr2}$

我想问题可能出在这里缺少引号:https://github.com/django/django/blob/master/django/db/backends/sqlite3/base.py#L129,但是当我在virtualenv中更改这个文件时,它失败了

ProgrammingError: Incorrect number of bindings supplied. The current statement uses 6, and there are 7 supplied.

Tags: django数据库objectsrequestpostgresqltypefilterrequests
1条回答
网友
1楼 · 发布于 2024-09-27 09:28:45

默认情况下,SQLite不实现REGEXP运算符。(如果是的话,第二个操作数必须是一个字符串。)

您可以通过以下方式获得相同效果:

... WHERE reqs LIKE '1,%' OR reqs LIKE '%,1,%' OR reqs LIKE '%,1' OR reqs = '1'

相关问题 更多 >

    热门问题