关于在同一查询中使用@eq 和@paginate 进行数据搜索的问题

Posted

技术标签:

【中文标题】关于在同一查询中使用@eq 和@paginate 进行数据搜索的问题【英文标题】:Questions about using @eq and @paginate in same query for data search 【发布时间】:2020-09-02 07:09:48 【问题描述】:

这是我的数据库表: 这是我的查询:

products(
        product_id: String! @eq
        orderBy: _ @orderBy(columns: ["created_at", "product_id"])
    ): [Product!]! @paginate(defaultCount: 10)

第一个问题是: 我需要这样通过它

products( product_id: "" or null )

它会从 db 中返回任何内容。但是我想在“product_id”得到空字符串或null时返回所有数据。 当“product_id”为空字符串或为空时,有什么方法可以忽略“product_id”?

第二个问题是: 如您所见,数据库表 如果我想使用“product_langs”表中的“产品名称”进行查询以搜索“产品”表。 @eq 在这种情况下似乎不支持。这个案子有什么建议吗? 或者我需要使用自定义搜索和分页创建查询?如果是,我该怎么做?有没有关于如何创建自定义分页和搜索的示例?

谢谢和问候!

【问题讨论】:

【参考方案1】:

我目前无法试用,因此未经测试。 请注意,我是新手,仅提供建议,因为这已经有一段时间没有得到答复了。

关于您的第一个问题,请尝试删除 ! 看看会发生什么。这应该值得一试。


product_id: String! @eq
product_id: String @eq

你也可以试试这个 https://lighthouse-php.com/master/eloquent/complex-where-conditions.html

对于您的第二个问题,我相信这就是您要寻找的。​​p>

https://lighthouse-php.com/master/eloquent/complex-where-conditions.html#wherehasconditions

假设您正在 eloquent 中在您的 Product 模型上定义关系 productLang


products(
        hasProductLang: _ @whereHasConditions(columns: ["product_name"])
        orderBy: _ @orderBy(columns: ["created_at", "product_id"])
    ): [Product!]! @paginate(defaultCount: 10)


products(hasProductLang:  column: PRODUCT_NAME, operator: EQ, value: $searchString )

【讨论】:

以上是关于关于在同一查询中使用@eq 和@paginate 进行数据搜索的问题的主要内容,如果未能解决你的问题,请参考以下文章

关于分页Pagination的使用

使用mongoose-paginate-v2查询缓慢问题

Django Pagination - 查询参数(url)

EasyMock 中“相同”和“eq”之间的区别

markdown 关于如何使用flask-paginate的简单演示。

oracle关于同一表空间下的不同用户查询问题