Orator中如何实现多条件LIKE查询?

ID:19717 / 打印

orator中如何实现多条件like查询?

orator中的多条件like查询

orator是python的一个轻量级数据库对象关系映射(orm)框架。在原生sql中,可以使用or(或)运算符构造多个like查询条件。本文将探讨如何在orator中编写这样的查询。

原生sql查询

select * from `think_user` where  (`name` like '%think%' or `name` like '%php%')

orator查询

  • 单个关键词查询

使用like方法进行单个条件的like查询非常简单:

db.table('full_text').where('title', 'like', f'%{word}%').get()
  • 多个关键词查询

对于多个关键词的like查询,orator无法使用or_where方法。因此,可以使用以下两种方法:

方法1:使用多次赋值

#实现and逻辑 search = ['%word1%', '%word2%', '%word3%', ...] info = db.table('full_text') for s in search:     info = info.where('title', 'like', s) result = info.get()  #实现or逻辑 search = ['%word1%', '%word2%', '%word3%', ...] info = db.table('full_text') for s in search:     if search.index(s) == 0:         info = info.where('title', 'like', s)     else:         info = info.or_where('title', 'like', s) result = info.get()

方法2:使用原生sql

query = "SELECT * FROM `full_text` WHERE  (`title` LIKE '%think%' OR `title` LIKE '%php%')" result = DB.select(DB.raw(query)).get()

虽然orator缺乏对多条件like查询的直接支持,但使用多次赋值或原生sql仍然可以实现。但是,需要注意的是,这种方法可能会导致重复查询,从而降低查询效率。

上一篇: Selenium 获取多个元素时,如何避免 `TypeError: 不可迭代的对象` 错误?
下一篇: 使用 Lambda 表达式对元组列表排序:如何实现按元组第一个元素的大小排序?

作者:admin @ 24资源网   2025-01-14

本站所有软件、源码、文章均有网友提供,如有侵权联系308410122@qq.com

与本文相关文章

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。