登录
首页 >  文章 >  python教程

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

来源:php

时间:2024-10-26 08:36:55 350浏览 收藏

哈喽!大家好,很高兴又见面了,我是golang学习网的一名作者,今天由我给大家带来一篇《Orator中如何实现多条件LIKE查询?》,本文主要会讲到等等知识点,希望大家一起学习进步,也欢迎大家关注、点赞、收藏、转发! 下面就一起来看看吧!

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仍然可以实现。但是,需要注意的是,这种方法可能会导致重复查询,从而降低查询效率。

好了,本文到此结束,带大家了解了《Orator中如何实现多条件LIKE查询?》,希望本文对你有所帮助!关注golang学习网公众号,给大家分享更多文章知识!

声明:本文转载于:php 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>