当前位置: 首页 > 知识库问答 >
问题:

gorm 如何在 gin controller 中构建复杂的查询条件?

姜烨伟
2024-02-20

我的的查询为:

controller

// 接收query 的参数func Index(c *gin.Context){ name:=c.DefaultQuery(xxxx,"") // 这里的query 会有不同的参数 age:=c.DefaultQuery(xxxx,"") // 这里的query 会有不同的参数 time:=c.DefaultQuery(xxxx,"") // 这里的query 会有不同的参数 whereStr:="name and ? age >? time < ?" //构建sql 语句 UserServie.Find(whereStr,name,age,time) // 执行查询}

service

func Find(where interface{},parm ...interface{})(list []model.UserModel){ db.where(where,parm).Find(&list) return list}

我的问题出现在了controller 中

我不知道如何构建灵活的查询条件

比如前端会get 很多的参数过来,比如姓名年龄时间 或者他只get姓名时间

这样我这里的构建就很麻烦了,也不优雅

请问各位遇到这种情况是如果构建的? map?

共有1个答案

乜飞航
2024-02-20

如果想要自动生成查询条件,你的需要定义一个规范,否则没法解析。比如这样接口:?query=name=xx,age=12,time<2023-12-13
然后你就可以解析为key-value的模式,自动生成查询条件,但是要主要安全,内部系统可以这样使用。
或者直接通过请求体定义更加复杂的格式

 类似资料:
  • 我一直在使用关系数据库,最近决定将性能关键服务从SQL服务器迁移到Tarantool,希望利用内存中的快速搜索和处理。在计划迁移时,我有几个问题。 我有一个包含大约一百万条记录的表,其中包含定价信息,这意味着我主要处理的是数字和UUID。首先,我需要运行一个包含多个条件的select来获取数据的子集,如 Q1:在Lua中运行这样一个查询的策略是什么?我是为谓词中的每个字段创建索引,还是可以使用一个

  • 问题内容: 我想用cakephp进行这样的查询: 这是我的$ conditions代码: 我正在使用Debugger :: dump()方法显示结果,并且结果仅使用最后一个“ OR”条件,而不是同时使用“ OR”条件: 我的问题是,如何进行查询以同时使用“ OR”条件? 请尽快回复..在此先感谢:) 问题答案: 请尝试以下方法: 将是 任何阵列没有指定,或者是。无需手动指定。

  • 问题内容: 是否可以对JSON对象执行复杂的查询?我愿意接受JavaScript或jQuery解决方案,越轻松越好。我正在构想某种类似于LINQ或SQL的功能编程语言。 我不希望其他任何第三方库或附加组件。 更新 从早期答案的外观来看,将需要一个附加组件。在这种情况下,我更喜欢不需要安装过程的加载项。随软件发布一起部署的东西(如jQuery)很好(例如* .js文件集)。 问题答案: 签出:是否有

  • 问题内容: 是否有一个库,可以像JPA中那样以编程方式构建SPARQL查询,或者可以像使用for SQL 一样构建查询? 问题答案: 您可以使用两种方法在Jena中以编程方式构建查询:语法或代数。耶拿维基上有一个介绍。 使用代数,您将执行以下操作: (摘自Wiki页面) 不是(也不是预期的),但是那是其中的一些方式。您而不是AND,而您想要进行OR等。痛点是我的经验中的表达式:您可能想从字符串中解

  • 按日期列搜索在Spring引导mongob使用条件如何搜索按日期列在Spring引导mongob使用条件(复杂查询) 待继续ans

  • 我有一个mysql查询,它并不是很复杂,但我似乎不知道应该如何用Symfony编写它。 首先是查询: 我基本上是想看看t1是否是这些列中任何单词的一部分。假设是正在传递的变量。我不确定我是否应该在存储库中写这篇文章,如果应该,如何写。我正在寻找最佳实践方法。 谢谢