【问题标题】:how to write raw like query in django2?如何在 django2 中编写 raw like 查询?
【发布时间】:2018-12-02 06:45:28
【问题描述】:

我正在尝试开发一个用户可以搜索的搜索应用程序,并且为了满足我的系统要求,当我尝试编写以下原始查询时,我需要避免 ORM 查询

q = request.POST.get('searchData')
    if q:
        titleInfo = Item.objects.raw("""select * from item where title like '%%s%'""", [q])

它给了我这个错误

ValueError at /test
unsupported format character ''' (0x27) at index 41

如果我删除引号

"""select * from item where title like %%s%"""

它给了我以下错误

ValueError at /test
incomplete format

我的查询在 MySQL 数据库中运行良好的地方

【问题讨论】:

  • 你应该解释为什么你需要避免orm,因为thisb在其中表达起来很简单。
  • 我的数据库没有遵循外键系统,我在查询中更像是外键系统,但它只是一个示例,而且我是原始查询的忠实粉丝

标签: mysql django python-3.x


【解决方案1】:

我这样解决问题

q = request.POST.get('searchData')
    query = '%'+q+'%'
    if q:
        titleInfo = Item.objects.raw("select * from item where title like %s", [query])

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-11-07
    • 1970-01-01
    • 1970-01-01
    • 2021-05-27
    • 2021-07-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多