SQLAlchemy - 问题 func.lower
SQLAlchemy - Issue w/ func.lower
我正在开发一个利用 SQLAlchemy 的烧瓶应用程序。我更新了我的应用程序以指向 PostgresQL 数据库,但我被一小段但重要的代码挂断了:
records = Record.query.filter(func.lower(Record.name.like('{}%'.format(point)))).all()
过去这个 运行 没有问题。现在我正在使用 Postgres 和 psycopg2 我收到以下错误:
ProgrammingError: (psycopg2.ProgrammingError) function lower(boolean) does not exist
LINE 3: WHERE lower(record.name LIKE 'a%')
^
HINT: No function matches the given name and argument types. You might need to add explicit type casts.
[SQL: 'SELECT record.id, record.name
FROM record
WHERE lower(record.name LIKE %(name_1)s)'] [parameters: {'name_1': 'a%'}]
我是 Flask 和 Web 应用程序的新手,但我的理解是使用 ORM 意味着我应该能够相对轻松地换出数据库,并且所有现有代码应该 运行 没有问题。
注意:x = Record.query.order_by(func.lower(Record.name)).all()
运行没有问题
LIKE
区分大小写,ILIKE
不区分大小写。
使用 ILIKE
您不需要使用 lower
。
records = record.query.filter(Record.name.ilike('{}%'.format(point))).all()
我正在开发一个利用 SQLAlchemy 的烧瓶应用程序。我更新了我的应用程序以指向 PostgresQL 数据库,但我被一小段但重要的代码挂断了:
records = Record.query.filter(func.lower(Record.name.like('{}%'.format(point)))).all()
过去这个 运行 没有问题。现在我正在使用 Postgres 和 psycopg2 我收到以下错误:
ProgrammingError: (psycopg2.ProgrammingError) function lower(boolean) does not exist
LINE 3: WHERE lower(record.name LIKE 'a%')
^
HINT: No function matches the given name and argument types. You might need to add explicit type casts.
[SQL: 'SELECT record.id, record.name
FROM record
WHERE lower(record.name LIKE %(name_1)s)'] [parameters: {'name_1': 'a%'}]
我是 Flask 和 Web 应用程序的新手,但我的理解是使用 ORM 意味着我应该能够相对轻松地换出数据库,并且所有现有代码应该 运行 没有问题。
注意:x = Record.query.order_by(func.lower(Record.name)).all()
运行没有问题
LIKE
区分大小写,ILIKE
不区分大小写。
使用 ILIKE
您不需要使用 lower
。
records = record.query.filter(Record.name.ilike('{}%'.format(point))).all()