Python的orator如何构造多个like查询?

原生语句:

SELECT * FROM `think_user` WHERE  (`name` LIKE '%think%' OR `name` LIKE '%php%')

在 orator 中该怎么写?
单个的关键词查询:

DB.table('full_text').where('title', 'like', f'%{word}%').get()

多个怎么写?

阅读 2.6k
2 个回答

用的多次赋值方法搞定的,不得不说,作为python的AR ORM实现的orator,在用法方面甚至不如php的thinkorm,虽然后者模仿laravel的痕迹比较重,但是python作为一个有着众多库的语言,AR ORM竟然如此不堪,更比不上rails,而且orator很久没有更新了。

#实现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()
新手上路,请多包涵
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题