想在order by中添加中文排序
queryWrapper.last("ORDER BY CONVERT(name USING GBK ) DESC");
报以下错误,jsqlparser解析convert失败报错[mysql] can't parse convert function in order by clause · Issue #688 · JSQLParser/JSqlParser · GitHub
Caused by:
net.sf.jsqlparser.parser.ParseException: Encountered " "(" "( "" at line 1, column 33.
Was expecting one of:
<EOF>
"ASC" ...
"DESC" ...
"FOR" ...
"UNION" ...
"ORDER" ...
"INTERSECT" ...
"EXCEPT" ...
"MINUS" ...
"NULLS" ...
";" ...
"," ...
"|" ...
"&" ...
"^" ...
"::" ...
at net.sf.jsqlparser.parser.CCJSqlParser.generateParseException(CCJSqlParser.java:16395)
解决方法:
使用cast(xxx as char character set gbk) 替代 convert
https://github.com/baomidou/mybatis-plus/issues/3431#issuecomment-1449660640
queryWrapper.last("ORDER BY cast(name as char character set gbk ) DESC");