我使用 Go 和 MySQL 数据库。假设我有一段这样的字符串:[]string{"b", "c", "a"}并且我想要这样的最终数据:
[]Student{
Student{ID: "b", Name: "Ben"},
Student{ID: "c", Name: "Carl"},
Student{ID: "a", Name: "Alexander"},
}
当我想建立 MySQL 查询时,是使用ORDER BY FIELD(id,'b','c','a')一种高效的方式吗?或者如果我不使用它,我会有这样的代码:
keys := []string{"b", "c", "a"}
...
students := make([]Student, 0)
for rows.Next() {
s := Student{}
err := rows.Scan(&s.ID, &s.Name)
if err != nil {
log.Fatal(err)
}
students = append(students, s)
}
mStudents := make(map[string]Student, 0)
for _, v := range students {
mStudents[v.ID] = v
}
finalData := make([]Student, 0)
for _, v := range keys {
if _, ok := mStudents[v]; ok {
finalData = append(finalData, mStudents[v])
}
}
但我认为这是一种非常低效的方式。那么,还有其他方法吗?
拉莫斯之舞
慕尼黑8549860
随时随地看视频慕课网APP
相关分类