如何实现一种多字段查询场景

场景:前端POST传入一个字段或者多个字段,gin拿到后如何处理区分传入的是什么?然后去数据库查询,如果查找了就返回这个用户的所有数据,(能被查询的字段只有:name,order_id,phone)如:

// 情况1
POST>张三
Rturn—>name:张三,gender:男,age:32,order_id:123456,phone:13888888888
// 场景2
POST>13888888888
Return—>name:张三,gender:男,age:32,order_id:123456,phone:13888888888
// 场景3
POST>13888888888654321
Return—>
name:张三,gender:男,age:32,order_id:123456,phone:13888888888
name:李四,gender:女,age:18,order_id:654321,phone:15555555555

数据库

有三张表user,order,info

user 主表

id name gender age
1 张三 32
2 李四 18

order 分表关联 user.id

id user_id order_id
1 1 123456
2 2 654321

info 分表关联 user.id

id user_id phone
1 1 13888888888
2 2 15555555555

前端

<div class="search-box">
    <form method="post" action="/">
        <input type="text" class="search-txt" name="column" placeholder="查询" />
        <button type="submit" class="search-btn fa fa-search" aria-hidden="true"></button>
    </form>
</div>

后端

func main() {
    // 初始化数据库连接
    config.NewDB()

    // 创建 gin 引擎实例
    router := gin.Default()
    router.LoadHTMLFiles("./static/templates/index.html")
    router.Static("/static", "./static/templates/css")
    router.GET("/", func(c *gin.Context) {
        c.HTML(http.StatusOK, "index.html", gin.H{})
    })
    router.POST("/", func(c *gin.Context) {
        column := c.PostForm("column")
        fmt.Println(column)
        c.HTML(http.StatusOK, "index.html", gin.H{
            "result": column,
        })
    })
    // 启动服务
    err := router.Run()
    if err != nil {
        return
    }
}
sql
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!