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

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

admin6年前 (2020-05-18)程序心得1254
 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)


分享到:

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

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

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

分享给朋友:

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

SVN Skipped 'xxx' -- Node remains in conflict 错误的解决办法

svn提交发现错误#cd /home/svn/app/# svn upUpdating '.':Skipped 'xxx' -- Node remains in conflictAt revision 1054.Summary of conflicts: ...

Mysql 触发器使用(含navicat使用案例)

Mysql 触发器使用(含navicat使用案例)

CREATE TRIGGER updateutime2 BEFORE UPDATE on yp_cms_score for EACH ROW BEGIN  SET NEW.utime= ...

css做屏幕适配

CSS判断不同分辨率浏览器(显示屏幕)显示不同宽度布局CSS3技术支持IE6到IE8。将用到css3 @media样式进行判断,但IE9以下版本不支持CSS3技术,这里DIVCSS5给大家介绍通过JS实现低版本的浏览器也支持CSS3实现实用布局CSS DIV网页布局中当分辨率小于等于1024px(像...

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

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

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

ios5的safari浏览器的电话号码识别功能的禁用

更详细的apple官方文档: https://developer.apple.com/library/safari/#featuredarticles/iPhoneURLScheme_Reference/Articles/PhoneLinks.html在编写 HTML 时,有一个 meta...

jquery给url新增、修改、查询

(function ($) {  $.extend({   Request: function (m) {    var sValue = loca...

发表评论

访客

看不清,换一张

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