sql - Peewee中的字符串匹配(SQL)

标签 sql peewee

我试图在Peewee中查询应该在其中具有特定子字符串的结果。

例如,如果我只想要名称为“Physics”的事件:

schedule = Session.select().join(Activity).where(Activity.name % "%Physics%").join(Course).join(StuCouRel).join(Student).where(Student.id == current_user.id)

上面的示例没有给出任何错误,但是不能正常工作。

在python中,我只需要执行if "Physics" in Activity.name,因此我正在寻找可以在查询中使用的等效项。

最佳答案

快速回答:

只需使用Activity.name.contains('Physics')
根据您所使用的数据库后端,您需要选择正确的“通配符”。 Postgresql和MySQL使用“%”,但是对于Sqlite,如果要执行LIKE查询,则实际上将要使用“*”(尽管对于ILIKE,它是“%”,令人困惑)。

我想猜测您正在使用SQLite,因为上述查询失败,因此,如果要区分大小写的部分字符串匹配:Activity.name % "*Physics*"和不区分大小写的形式:Activity.name ** "%Physics%",请回顾一下SQLite。

http://www.sqlite.org/lang_expr.html#like

关于sql - Peewee中的字符串匹配(SQL),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20589462/

相关文章:

Python Peewee execute_sql() 示例

java - 多线程应用程序 - 用于重复检查的 SQL 查询

python - 如何在 peewee 2 中创建带有枚举的表模型?

sql - 我如何连接到 ODBC Oracle 数据库?

基于字母代码的 PHP/SQL ID

python - 将 PyQt 与 sql orm 库(sqlalchemy、peewee 等)集成

mysql - Peewee 在 sqlite 而不是 mysql 中创建表

duplicates - 删除 peewee 中的重复条目

sql - ms-access 中有 group_concat 函数吗?

php - 将固定长度的文本文件转换为 SQL