当前位置:首页 > 程序心得 > 正文内容

go xorm 优雅方式实现动态条件查询

admin6年前 (2020-05-18)程序心得1257
 var persons []domain.Person
 session := engine.Where("1=1")
 if param.ActivityId != nil {
        session = session.And("activity_id = ?", param.ActivityId)
}
if param.Sex != nil {
        session = session.And("sex = ?", param.Sex)
}
if param.Num != nil {
        session = session.And("num = ?", param.Num)
}
if param.Name != "" {
        name := "%" + param.Name + "%"
        session = session.And("name like ?", name)
}

//注意xorm Count、Find方法执行会自动closeSession,直接使用上边的session,第二条sql的where条件会丢失,
//所以通过 session.Conds()提取where条件,放到各自的session进行执行

cnt,_:=engine.Where(session.Conds()).Count(&persons)
err := engine.Where(session.Conds()).OrderBy("create_time desc").Limit(10, 0).Find(&persons)


分享到:

扫描二维码推送至手机访问。

版权声明:本文由云河空间发布,如需转载请注明出处。

本文链接:https://yuyunhe.cn/index.php/post/300.html

分享给朋友:

“go xorm 优雅方式实现动态条件查询” 的相关文章

Thinkphp3.2.x 多图上传几个注意点

1、<form enctype="multipart/form-data">2、<form enctype="multipart/form-data">3、<input type="file...

MySQL获得当前日期时间\时间戳函数

MySQL获得当前日期时间\时间戳函数 1.1 获得当前日期+时间(date + time)函数:now()mysql> select now();+———————+| now() |+———————+| 2008-08-08 22:20:46 |+———————+除了 now()...

多行文字溢出[...]的实现(text-overflow: ellipsis)

多行文字溢出[...]的实现(text-overflow: ellipsis)

对于单行文字, 很简单. Css代码  .oneLine {      width: 200px;      overflow:&...

Jq 网页点击图片放大效果(单张)

Jq 网页点击图片放大效果(单张)

首先引入jq文件:  <script src="http://libs.baidu.com/jquery/1.7.2/jquery.min.js"></script>$(function(){     $...

lnmp 安装mongodb以及 mongodb扩展

lnmp 安装mongodb以及 mongodb扩展

笔者环境:lnmp 一键安装包:centos7 +php5.6+mysql 5.6 附件:mongo-php-driver-legacy-master.zipgit clone https://github.com/mongodb/mongo-php-driver-legacy....

PHP  计算两个日期之间相隔月数、每月开始日期、结束日期,开始时间戳,结束时间戳

PHP 计算两个日期之间相隔月数、每月开始日期、结束日期,开始时间戳,结束时间戳

在做业务统计计算的时候难免会遇到时间节点问题,一般会涉及的也就是月份、起始日期,然后再数据库做统计查询的时候就会用到时间戳,简单写了下,把代码分享出来,给大家参考,当然有优化的意见,欢迎交流!PHP:/**  * @param $date1  * ...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。