查找数据库的smt_lampcontroller表中,行号为奇数的所有数据的id号:
SELECT
GROUP_CONCAT(id)
FROM
(
SELECT
id,
(@rowNo :=@rowNo + 1) AS rowNo
FROM
smt_lampcontroller,
(SELECT(@rowNo := 0)) b
ORDER BY
id ASC
) AS a
WHERE
MOD (a.rowNo, 2) = 1
运行结果为:
在MySQL查询分析器中能运行,但是放到java中,
String sql = "SELECT GROUP_CONCAT(id) "
+ " from (Select id,(\\@rowNo:=\\@rowNo+1) as rowNo "
+ " from smt_lampcontroller, (Select (\\@rowNo:=0) ) b order by id asc) as a "
+ " where mod(a.rowNo, 2) = 1";
String str = Db.queryStr(sql, CMap.init());
就报错:
BeetlSQLTemplateExceptionHander.processException(BeetlSQLTemplateExceptionHander.java:90)
解决办法:
在数据库语句中,包含@的地方,都转义下:改为\\@即可。
原因是@符号被beetle解析掉了。
更多iOS、Android、Python、Java、MySQL的文章,请点击:
http://blog.csdn.net/jamiecheung
http://blog.csdn.net/u010841622