一般情况下,我们在表设置排序字段都是int,对应的sql查询 也就只需要order by xx desc。但是总有一些老项目,由于会因为各种原因,导致出现此字段为varchar情况,这种情况我们应该怎么排序呢
ex = g.Ex{
"state": 0,
}
dialect.From("xx").Select(colBanner...).Where(ex).Order(g.C("sort").Cast("DECIMAL").Asc()).ToSQL()
对应的sql:
select * from xx_banner where state=0 ORDER BY CAST(sort AS DECIMAL) ASC
当前也可以使用加运算符
select * from xx_banner where state=0 ORDER BY(sort+0) ASC