为了账号安全,请及时绑定邮箱和手机立即绑定

如何使用Scan接口将数据库中读取的字符串小写

如何使用Scan接口将数据库中读取的字符串小写

Go
SMILET 2021-07-09 14:59:26
我想在从数据库中读取字符串时将其小写。我知道这可以在 SQL 中完成,但这是我使用 go 的第一天,这更多是概念证明(和对 go 的理解)而不是实际需求。使用 Scan 接口从数据库读取时,类型 EmailAddress 应始终为小写,这会导致恐慌:接口转换:接口是 []uint8,而不是字符串package mainimport (  "database/sql"  "github.com/kisielk/sqlstruct"  _ "github.com/lib/pq"  "log"  "strings")type EmailAddress stringfunc (g *EmailAddress) Scan(src interface{}) error {  *g = EmailAddress(strings.ToLower(src.(string)))  return nil}type User struct {  Id          int  MobilePhone string `sql:"mobile_phone"`  Email       EmailAddress}func main() {  db, _ := sql.Open("postgres", "host=localhost dbname=test sslmode=disable")  defer db.Close()  rows, _ := db.Query("SELECT id, mobile_phone, COALESCE(email,'') as email FROM users limit 5")  for rows.Next() {    var t User    _ = sqlstruct.Scan(&t, rows)    log.Printf("%+v\n", t)  }}
查看完整描述

1 回答

  • 1 回答
  • 0 关注
  • 197 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信