druid SQLSelectBuilder中limit问题

wgx48brx  于 4个月前  发布在  Druid
关注(0)|答案(1)|浏览(77)

代码如下:

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,还是我的使用方式有问题?

exdqitrt

exdqitrt1#

该库不维护了吗?我也遇到这个问题。解决方案:通过SQLUtils.format(sqlStatBuilder.toString(), DbType.postgresql) 格式化一次。

相关问题