代码如下:
SQLSelectBuilder sqlSelectBuilder = new SQLSelectBuilderImpl("mysql");
System.out.println(sqlSelectBuilder
.select("f1","sum(ft2+ft3) as f2")
.selectWithAlias("f3","df3")
.from("table_user")
.limit(10,1000)
.orderBy("f1 ASC")
.orderBy("f2 Desc")
.groupBy("f1")
.whereAnd("f1>10")
.whereAnd("f2>4")
.whereOr("(f2<2 and f2>4)")
.toString()
得到结果:
SELECT f1, SUM(ft2 + ft3) AS f2, f3 AS df3
FROM table_user
WHERE f1 > 10
AND f2 > 4
OR (f2 < 2
AND f2 > 4)
GROUP BY f1
LIMIT 1000, 10
ORDER BY f1 ASC, f2 DESC
这条SQL是有问题的, LIMIT 1000, 10
应该在最后,即:
SELECT f1, SUM(ft2 + ft3) AS f2, f3 AS df3
FROM table_user
WHERE f1 > 10
AND f2 > 4
OR (f2 < 2
AND f2 > 4)
GROUP BY f1
ORDER BY f1 ASC, f2 DESC
LIMIT 1000, 10
帮忙看下这是个bug,还是我的使用方式有问题?
1条答案
按热度按时间exdqitrt1#
该库不维护了吗?我也遇到这个问题。解决方案:通过SQLUtils.format(sqlStatBuilder.toString(), DbType.postgresql) 格式化一次。