xorm -Alias,Asc,Desc方法实例
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方法实例的更多相关文章
- PostgreSQL 数据库NULL值的默认排序行为与查询、索引定义规范 - nulls first\last, asc\desc
背景 在数据库中NULL值是指UNKNOWN的值,不存储任何值,在排序时,它排在有值的行前面还是后面通过语法来指定. 例如 -- 表示null排在有值行的前面 select * from tbl or ...
- C#操作SQLite方法实例详解
用 C# 访问 SQLite 入门(1) CC++C#SQLiteFirefox 用 C# 访问 SQLite 入门 (1) SQLite 在 VS C# 环境下的开发,网上已经有很多教程.我也是从 ...
- JDBC连接MySQL 方法 实例及资料收集
JDBC连接MySQL 方法 实例及资料收集 准备工作 首先,安装MySQL,配置用户名和密码,创建数据库. 可参见之前的文章: http://www.cnblogs.com/mengdd/p/315 ...
- [原创]java WEB学习笔记102:Spring学习---Spring Bean配置:bean配置方式(工厂方法(静态工厂方法 & 实例工厂方法)、FactoryBean) 全类名
本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...
- Java中==、equals、hashcode的区别与重写equals以及hashcode方法实例(转)
Java中==.equals.hashcode的区别与重写equals以及hashcode方法实例 原文地址:http://www.cnblogs.com/luankun0214/p/4421770 ...
- 【转】Java中==、equals、hashcode的区别与重写equals以及hashcode方法实例
原文地址:http://www.cnblogs.com/luankun0214/p/4421770.html 感谢网友的分享,记录下来只为学习. 1.重写equals方法实例 部分代码参考http ...
- php后台如何避免用户直接进入方法实例
这篇文章介绍了php后台如何避免用户直接进入方法实例,有需要的朋友可以参考一下 1)创建BaseController控制器继承Controller(后台的一切操作要继承BaseController): ...
- js生成随机数的方法实例总结 [收藏]
js生成随机数的方法实例总结 js生成随机数主要用到了内置的Math对象的random()方法.用法如:Math.random().它返回的是一个 0 ~ 1 之间的随机数.有了这么一个方法,那生成任 ...
- JS常用方法总结,及jquery异步调用后台方法实例
//前台接收get参数值 function getQueryString(name) { var queryStrings = window.location.search.sp ...
随机推荐
- zeebe 0.20.0 发布生产可用了!
一个比较好消息,来自camunda zeebe 团队的消息,zeebe 0.20.0 发布,终于可以生产可用了 如果关注了官方的声明的话,同时团队也出了一个自己的许可协议,但是和大部分当前的开源 产品 ...
- cube.js 学习(十)cube 来自官方的学习网站
尽管cube.js 包含了一个doc 站点,但是资料不是很全,同时如果查看了cube github 代码中的一些demo的话,发现还是很不错的 但是一些实践没有在文档展现出来,还好我们可以从cube ...
- “知乎杯”2018 CCF 大学生计算机系统与程序设计竞赛 贪心算法(greedy)
--> 贪心算法 1)题解 • 分别用V0.V1和V>=2表示度为0.1以及至少为2的顶点集合 • 对于每个顶点,维护三个属性: • degree ...
- 洛谷 P2918 [USACO08NOV]买干草Buying Hay 题解
P2918 [USACO08NOV]买干草Buying Hay 题目描述 Farmer John is running out of supplies and needs to purchase H ...
- Theano安装笔记
由于实验需要,近三个月来,安装过十几次Theano,基本上每次都是从最基本的nvidia driver装起.总结一些粗浅的安装心得. GPU:Nvidia K40, M40, M60 软件环境:Unb ...
- 【JZOJ6227】【20190621】ichi
题目 $n , m ,d,x\le 10^5 , $强制在线 题解 对原树做dfs,得到原树的dfs序 对kruksal重构树做dfs,得到重构树的dfs序 那么就是一个三维数点问题 强制在线并且卡空 ...
- 【JZOJ6210】【20190612】wsm
题目 定义两个非递减数列的笛卡尔和数列\(C = A \oplus B\) 为\((A_i+B_j)\)排序后的非递减数列 \(W\)组询问,问有多少对可能的数列,满足: \(|C|=s,|A| = ...
- GoCN每日新闻(2019-10-08)
GoCN每日新闻(2019-10-08) <premenlo';font-size:9.0pt;">GoCN每日新闻(2019-10-08) 1. Go 构建高性能数据库中间件: ...
- GoCN每日新闻(2019-10-07)
GoCN每日新闻(2019-10-07) 国庆专辑:GopherChina 祝大家国庆节快乐(假期最后一天) GoCN每日新闻(2019-10-07) 1. Go 不好的点:JSON 解析的探 ...
- 【03NOIP普及组】麦森数(信息学奥赛一本通 1925)(洛谷 1045)
[题目描述] 形如2P-1的素数称为麦森数,这时P一定也是个素数.但反过来不一定,即如果P是个素数,2P-1不一定也是素数.到1998年底,人们已找到了37个麦森数.最大的一个是P=3021377,它 ...