1.查询单记录

const SearchVpcByNameSql = "select * from t_order where username = ? "
func (v *VpcMapper) SearchOrderByName(name string) (order domain.Order, err error){
row := v.Db.QueryRow(SearchVpcByNameSql, name)
err = row.Scan(&order.Id, &order.Username, &order.ServiceType,
&order.OrderType, &order.Status, &order.Reason, &order.OrderItemJson, &order.CreateTime)
err = row.Scan(&vpcName)
return order,err
}

2.多记录查询

func (o *OrderService) ListUserOrders(username string) (*[]domain.Order, error){
// 查询订单列表
rows, err := o.Db.Query("select * from t_order where username = ? order by create_time desc", username)
defer func() {
if rows != nil {
rows.Close()
}
}()
if err != nil {
klog.Error("query orders error", err)
return nil, err
}
items := make([]domain.Order,0)
for rows.Next() {
order := new(domain.Order)
err = rows.Scan(&order.Id, &order.Username, &order.ServiceType, &order.OrderType, &order.Status, &order.Reason, &order.OrderItemJson, &order.CreateTime)
if err != nil {
klog.Error("query orders error", err)
return nil, err
}
order.OrderItemJson = ""
items = append(items, *order)
}

return &items,nil
}

3.记录是否存在

//通过md5判断文件是否存在
func (m *ImageService) IsMd5Exist(md5 string) (bool, error) {
totalRow, err := m.Db.Query("SELECT COUNT(*) FROM t_image where md5 = ?", md5)
if err != nil {
klog.Error("query t_image md5 error", err)
return false, err
}
total := 0
for totalRow.Next() {
err := totalRow.Scan(
&total,
)
if err != nil {
klog.Error("query t_image md5 error", err)
continue
}
}
totalRow.Close()
if total == 0 {
return false, nil
}
return true, nil
}

#yyds干货盘点#golang数据库常用数据库操作_5e

上述一个是通过数目来判断是否存在,还有个是查到为空有error代表不存在

4.记录数量

#yyds干货盘点#golang数据库常用数据库操作_sql_02

上述代码的total就是总记录数目