func (loc Location) GormValue(ctx context.Context, db *gorm.DB) clause.Expr {
return clause.Expr{
SQL: "POINT(?)",
Vars: []interface{}{fmt.Sprintf("%f, %f", loc.X, loc.Y)},
}
}
這是我的估價師。它會創建一個這樣的查詢POINT('XX.XXXXX, YY.YYYYY')。但是由于單引號,此查詢不起作用。我怎么解決這個問題?
uj5u.com熱心網友回復:
一種解決方案可能是使用 MySQL 特定的函式,例如GeomFromText將PointFromText字串轉換為空間資料型別。
func (loc Location) GormValue(ctx context.Context, db *gorm.DB) clause.Expr {
return clause.Expr{
SQL: "PointFromText(?)",
Vars: []interface{}{fmt.Sprintf("POINT(%f %f)", loc.X, loc.Y)},
}
}
此處提供了更多詳細資訊。另外,請注意,根據您使用的 MySQL 版本,這些函式的名稱可能不同。例如,MySQL 5.6PointFromText函式對應 MySQL 8.0ST_PointFromText函式。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/525378.html
標籤:mysql去戈戈姆
下一篇:查找、決議和驗證電子郵件地址
