• Alias(string)给Table设定一个别名

    package main
    
    import (
    "fmt"
    _ "github.com/go-sql-driver/mysql"
    "github.com/go-xorm/xorm"
    "log"
    "time"
    ) var engine *xorm.Engine type User struct {
    Name string `xorm:"varchar(25) 'name'"`
    Id int `xorm:"pk 'id' autoincr"`
    CreatedAt time.Time `xorm:"created"`
    } func main() {
    var err error
    engine, err = xorm.NewEngine("mysql", "root:123456@/test")
    if err != nil {
    log.Fatal(err)
    return
    } err = engine.CreateTables(User{})
    if err != nil {
    log.Fatal(err)
    return
    } //插入数据部分
    u := make([]User,3)
    u[0].Name="u0"
    u[1].Name="u1" _, err = engine.Insert(u)
    if err!=nil {
    log.Fatal(err)
    return
    } uu :=new(User) //查询结果为空
    has,err := engine.Alias("alias") .Where("alias.name = ?","u").Get(uu)
    if err!=nil{
    log.Fatal(err)
    return
    }
    fmt.Println("要查询的name是u的数据是否在数据库里:",has)
    if has {
    fmt.Println("uid:",uu.Id," uname:" ,uu.Name," utime:",uu.CreatedAt)
    } // 一个查询条件
    has,err = engine.Alias("alias") .Where("alias.name = ?","u0").Get(uu)
    if err!=nil{
    log.Fatal(err)
    return
    }
    fmt.Println("name是u0的数据是否在数据库里",has)
    if has {
    fmt.Println(" name是u0的数据在数据库里,而且他的uid:",uu.Id," uname:" ,uu.Name," utime:",uu.CreatedAt)
    } //and条件查询
    has,err = engine.Alias("alias") .Where("alias.name = ?","u0").And("alias.id =?","1").Get(uu)
    if err!=nil{
    log.Fatal(err)
    return
    }
    fmt.Println("name为u0,id为1的数据是否在数据库里",has)
    if has {
    fmt.Println(" name为u0,id为1的数据在数据库里,而且他的uid:",uu.Id," uname:" ,uu.Name," utime:",uu.CreatedAt)
    } //or条件查询
    has,err = engine.Alias("alias") .Where("alias.name = ?","u0").Or("alias.name =?","u").Get(uu)
    if err!=nil{
    log.Fatal(err)
    return
    }
    fmt.Println("name为u0或者为u的数据在数据库里",has)
    if has {
    fmt.Println(" name为u0或者为u的数据在数据库里,而且他的uid:",uu.Id," uname:" ,uu.Name," utime:",uu.CreatedAt)
    }
    /*
    输出:
    要查询的name是u的数据是否在数据库里: false
    name是u0的数据是否在数据库里 true
    name是u0的数据在数据库里,而且他的uid: 6 uname: u0 utime: 2019-05-26 14:17:51 +0800 CST
    name为u0,id为1的数据是否在数据库里 false
    name为u0或者为u的数据在数据库里 true
    name为u0或者为u的数据在数据库里,而且他的uid: 6 uname: u0 utime: 2019-05-26 14:17:51 +0800 CST */ }
  • Asc(…string)指定字段名正序排序/Desc(…string)指定字段名逆序排序

    package main
    
    import (
    "fmt"
    _ "github.com/go-sql-driver/mysql"
    "github.com/go-xorm/xorm"
    "log"
    "time"
    ) var engine *xorm.Engine type User struct {
    Name string `xorm:"varchar(25) 'name'"`
    Id int `xorm:"pk 'id' autoincr"`
    CreatedAt time.Time `xorm:"created"`
    } func main() {
    var err error
    engine, err = xorm.NewEngine("mysql", "root:123456@/test")
    if err != nil {
    log.Fatal(err)
    return
    } err = engine.CreateTables(User{})
    if err != nil {
    log.Fatal(err)
    return
    } /* u := make([]User, 5)
    u[0].Name = "abcd"
    u[1].Name = "acbd"
    u[2].Name = "dbac"
    u[3].Name = "cbda"
    u[4].Name = "bdca" _, err = engine.Insert(u)
    if err != nil {
    log.Fatal(err)
    return
    }
    */
    re := make([]User, 0) fmt.Println("升序之前:")
    err = engine.Find(&re)
    if err != nil {
    log.Fatal(err)
    return
    }
    for i, r := range re {
    fmt.Println(" index:", i, " rName:", r.Name)
    } re1 := make([]User, 0)
    fmt.Println("====================升序之后:")
    err = engine.Asc("name").Find(&re1)
    if err != nil {
    log.Fatal(err)
    return
    } for i, r := range re1 {
    fmt.Println(" index:", i, " rName:", r.Name)
    } fmt.Println("======================降序之后:")
    re2 := make([]User, 0)
    err = engine.Desc("name").Find(&re2)
    if err != nil {
    log.Fatal(err)
    return
    } for i, r := range re2 {
    fmt.Println(" index:", i, " rName:", r.Name)
    } fmt.Println("======================ORDERBY:")
    re3 := make([]User, 0)
    err = engine.OrderBy("name").Find(&re3)
    if err != nil {
    log.Fatal(err)
    return
    } for i, r := range re3 {
    fmt.Println(" index:", i, " rName:", r.Name)
    } fmt.Println("======================DESC:")
    re4 := make([]User, 0)
    err = engine.Desc("name").Find(&re4)
    if err != nil {
    log.Fatal(err)
    return
    } for i, r := range re4 {
    fmt.Println(" index:", i, " rName:", r.Name)
    }
    } /*
    输出:
    升序之前:
    index: 0 rName: abcd
    index: 1 rName: acbd
    index: 2 rName: dbac
    index: 3 rName: cbda
    index: 4 rName: bdca
    ====================升序之后:
    index: 0 rName: abcd
    index: 1 rName: acbd
    index: 2 rName: bdca
    index: 3 rName: cbda
    index: 4 rName: dbac
    ======================降序之后:
    index: 0 rName: dbac
    index: 1 rName: cbda
    index: 2 rName: bdca
    index: 3 rName: acbd
    index: 4 rName: abcd
    ======================ORDERBY:
    index: 0 rName: abcd
    index: 1 rName: acbd
    index: 2 rName: bdca
    index: 3 rName: cbda
    index: 4 rName: dbac
    ======================DESC:
    index: 0 rName: dbac
    index: 1 rName: cbda
    index: 2 rName: bdca
    index: 3 rName: acbd
    index: 4 rName: abcd
    */

xorm -Alias,Asc,Desc方法实例的更多相关文章

  1. PostgreSQL 数据库NULL值的默认排序行为与查询、索引定义规范 - nulls first\last, asc\desc

    背景 在数据库中NULL值是指UNKNOWN的值,不存储任何值,在排序时,它排在有值的行前面还是后面通过语法来指定. 例如 -- 表示null排在有值行的前面 select * from tbl or ...

  2. C#操作SQLite方法实例详解

    用 C# 访问 SQLite 入门(1) CC++C#SQLiteFirefox  用 C# 访问 SQLite 入门 (1) SQLite 在 VS C# 环境下的开发,网上已经有很多教程.我也是从 ...

  3. JDBC连接MySQL 方法 实例及资料收集

    JDBC连接MySQL 方法 实例及资料收集 准备工作 首先,安装MySQL,配置用户名和密码,创建数据库. 可参见之前的文章: http://www.cnblogs.com/mengdd/p/315 ...

  4. [原创]java WEB学习笔记102:Spring学习---Spring Bean配置:bean配置方式(工厂方法(静态工厂方法 & 实例工厂方法)、FactoryBean) 全类名

    本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...

  5. Java中==、equals、hashcode的区别与重写equals以及hashcode方法实例(转)

    Java中==.equals.hashcode的区别与重写equals以及hashcode方法实例  原文地址:http://www.cnblogs.com/luankun0214/p/4421770 ...

  6. 【转】Java中==、equals、hashcode的区别与重写equals以及hashcode方法实例

    原文地址:http://www.cnblogs.com/luankun0214/p/4421770.html 感谢网友的分享,记录下来只为学习. 1.重写equals方法实例   部分代码参考http ...

  7. php后台如何避免用户直接进入方法实例

    这篇文章介绍了php后台如何避免用户直接进入方法实例,有需要的朋友可以参考一下 1)创建BaseController控制器继承Controller(后台的一切操作要继承BaseController): ...

  8. js生成随机数的方法实例总结 [收藏]

    js生成随机数的方法实例总结 js生成随机数主要用到了内置的Math对象的random()方法.用法如:Math.random().它返回的是一个 0 ~ 1 之间的随机数.有了这么一个方法,那生成任 ...

  9. JS常用方法总结,及jquery异步调用后台方法实例

    //前台接收get参数值 function getQueryString(name) {            var queryStrings = window.location.search.sp ...

随机推荐

  1. learning scala akka tell pattern(二)

    package com.example import akka.actor._ object Tutorial_02_Tell_Pattern extends App { println(" ...

  2. nexus 3.17.0 做为golang 的包管理工具

    nexus 3.17.0 新版本对于go 包管理的支持是基于go mod 的,同时我们也需要一个athens server 然后在nexus 中配置proxy 类型的repo 参考配置 来自官方的配置 ...

  3. 【luoguP4544】[USACO10NOV]购买饲料Buying Feed

    题目链接 首先把商店按坐标排序 \(dp_{i,j}\)表示前i个商店买了j吨饲料并运到终点的花费,二进制拆分优化转移 #include<algorithm> #include<io ...

  4. 前端微信小程序电影类仿淘票票微信小程序

    需求描述及交互分析设计思路和相关知识点电影界面顶部页签切换效果设计正在热映界面布局设计即将上映界面布局设计电影详情页设计我的界面列表导航设计登录设计 相关知识点(1)swiper滑块视图容器组件,可以 ...

  5. GoCN每日新闻(2019-10-15)

    GoCN每日新闻(2019-10-15) GoCN每日新闻(2019-10-15) 1. Go Module 存在的意义与解决的问题 https://www.ardanlabs.com/blog/20 ...

  6. select count(1)和 select count(*)

    ),其实就是计算一共有多少符合条件的行. 1并不是表示第一个字段,而是表示一个固定值. 其实就可以想成表中有这么一个字段,这个字段就是固定值1,),就是计算一共有多少个1. 同理,),也可以,得到的值 ...

  7. 【00NOIP普及组】计算器的改良(信息学奥赛一本通 1910)(洛谷 1022)

    [题目描述] NCL是一家专门从事计算器改良与升级的实验室,最近该实验室收到了某公司所委托的一个任务:需要在该公司某型号的计算器上加上解一元一次方程的功能.实验室将这个任务交给了一个刚进入的新手ZL先 ...

  8. 仿站技术——获取和使用某些网站的iconfont图标字体

    前言: 很多前端新手在仿一些大型网站的时候经常遇到一个问题:该网站使用了图标字体——iconfont,虽然现在阿里有开源的iconfont库,但是还是没有原网站的效果(本人强迫症但非处女座).所以此文 ...

  9. 辨析Java方法参数中的值传递和引用传递

    小方法大门道 小瓜瓜作为一个Java初学者,今天跟我说她想通过一个Java方法,将外部变量通过参数传递到方法中去,进行逻辑处理,方法执行完毕之后,再对修改过的变量进行判断处理,代码如下所示. publ ...

  10. 转载:Java对Base64处理的细节

    https://baike.baidu.com/item/base64/8545775?fr=aladdin import java.util.Base64; 对于标准的Base64: 加密为字符串使 ...