<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                ## 添加 ```go // 你可以自己在sql中指定表名。這里是示例 db.Table("user").Create(user) ``` ## 更新 ```go // 注意,Model方法必須要和Update方法一起使用 // 使用效果相當于Model中設置更新的主鍵key(如果沒有where指定,那么默認更新的key為id),Update中設置更新的值 // 如果Model中沒有指定id值,且也沒有指定where條件,那么將更新全表 // 相當于:update user set name='xiaoming' where id=1; user := User{Id: 1, Name:"xiaoming"} db.Model(&user).Update(user) // 下面這個更新操作只使用了where條件沒有在Model中指定id db.Model(&User{}).Where("sex = ?", 1).Update("name", "xiaohong") // 如果你想手動將某個字段set為空值, 可以使用單獨選定某些字段的方式來更新: user := User{Id: 1} db.Model(&user).Select("name").Update(map[string]interface{}{"name":"", "age":0}) // 忽略掉某些字段: // 當你的更新的參數為結構體,而結構體中某些字段你又不想去更新,那么可以使用Omit方法過濾掉這些不想update到庫的字段: user := User{Id: 1, Name:"xioaming", Age:12} db.Model(&user).Omit("name").Update(&user) ``` ## 刪除 ```go // delete from user where id=1; user := User{Id: 1} db.Delete(&user) // delete from user where id > 11; db.Delete(&User{}, "id > ?", 11) ``` ## 事務 ```go tx := db.Begin() // 注意,一旦你在一個事務中,使用tx作為數據庫句柄 if err := tx.Create(&Animal{Name: "Giraffe"}).Error; err != nil { tx.Rollback() return err } if err := tx.Create(&Animal{Name: "Lion"}).Error; err != nil { tx.Rollback() return err } tx.Commit() return nil ``` ## 查詢 ```go //查詢所有記錄 db.Find(&u) //Find方法可以帶 where 參數 db.Find(&u,"id > ? and age > ?",2,12) //帶where 子句的查詢,注意where要在find前面 db.Where("id > ?", 2).Find(&u) // where name in ("xiaoming","xiaohong") db.Where("name in (?)",[]string{"xiaoming","xiaohong"}).Find(&u) //獲取第一條記錄,按照主鍵順序排序 db.First(&u) //First方法可以帶where 條件 db.First(&u,"where sex = ?",1) //獲取最后一條記錄,按照主鍵順序排序 //同樣 last方法也可以帶where條件 db.Last(&u) return u ``` ### 指定查詢字段-Select ```go //指定查詢字段 db.Select("name,age").Where(map[string]interface{}{"age":12,"sex":1}).Find(&u) ``` ### 使用Struct和map作為查詢條件 ```go db.Where(&User{Age:12,Sex:1}).Find(&u) ``` ### not 條件的使用 ```go // where name not in ("xiaoming","xiaohong") db.Not("name","xiaoming","xiaohong").Find(&u) //同上 db.Not("name",[]string{"xiaoming","xiaohong"}).Find(&u) ``` ### or 的使用 ```go //where age > 12 or sex = 1 db.Where("age > ?",12).Or("sex = ?",1).Find(&u) ``` ### order by 的使用 ```go //order by age desc db.Where("age > ?",12).Or("sex = ?",1).Order("age desc").Find(&u) ``` ### limit 的使用 ```go //limit 10 db.Not("name",[]string{"xiaoming","xiaohong"}).Limit(10).Find(&u) ``` ### offset 的使用 ```go //limit 300,10 db.Not("name",[]string{"xiaoming","xiaohong"}).Limit(10).Offset(300).Find(&u) ``` ### count(*) ```go //count(*) var count int db.Table("user").Where("age > ?",0).Count(&count) // 注意:這里你在指定表名的情況下sql為:select count(*) from user where age > 0; // 如上代碼如果改為: var count int var user []User db.Where("age > ?",0).Find(&user).Count(&count) // 相當于你先查出來[]User,然后統計這個list的長度。跟你預期的sql不相符。 ``` ### group & having ```go rows, _ := db.Table("user").Select("count(*),sex").Group("sex"). Having("age > ?", 10).Rows() for rows.Next() { fmt.Print(rows.Columns()) } ``` ### join ```go db.Table("user u").Select("u.name,u.age").Joins("left join user_ext ue on u.user_id = ue.user_id").Row() // 如果有多個連接,用多個Join方法即可。 ``` ## 原生函數 ```go db.Exec("DROP TABLE user;") db.Exec("UPDATE user SET name=? WHERE id IN (?)", "xiaoming", []int{11,22,33}) db.Exec("select * from user where id > ?",10).Scan(&user) ``` ~~~
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看