func (s *TODOService) DeleteTODO(ctx context.Context, ids []int64) error {
const deleteFmt = `DELETE FROM todos WHERE id IN (?%s)`
return nil
}
我需要向?查詢中添加與 id 串列數量一樣多的符號(此處),所以我想結合 fmt.Sprintf 和 strings.Repeat 函式將符號添加到提供的查詢格式中我應該如何添加它?
uj5u.com熱心網友回復:
ipmlStringer interface
package main
import (
"fmt"
"strconv"
"strings"
)
type SqlArr []int64
func (a SqlArr) String() string {
ans := strings.Builder{}
for i := 0; i < len(a); i {
ans.WriteString(strconv.FormatInt(a[i], 10))
if i != len(a)-1 {
ans.WriteRune(',')
}
}
return ans.String()
}
func Test(ids SqlArr) {
deleteFmt := fmt.Sprintf(`DELETE FROM todos WHERE id IN (%s)`, ids)
fmt.Printf("%v\n", deleteFmt)
}
func main() {
Test([]int64{1, 2, 3})
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/524283.html
標籤:去
