sql—使用mysql查询中的强制转换,它在localhost中工作,但在服务器中不工作

btqmn9zl  于 2021-07-26  发布在  Java
关注(0)|答案(1)|浏览(261)

在使用cast的mysql中,我编写了如下查询
阿克诺-瓦尔查尔 SELECT * FROM books where category = 'Book' ORDER BY CAST(Accnno AS int) DESC LIMIT 0,10 上面的查询在localhost中运行良好,但在服务器中不起作用,它显示错误,如
sql语法有错误;检查与mysql服务器版本对应的手册,以获得在第1行使用“int)desc limit 0,10”附近的正确语法

xzlaal3s

xzlaal3s1#

我建议使用隐式转换:

SELECT b.*
FROM books b
WHERE b.category = 'Book'
ORDER BY (Accnno + 0) DESC
LIMIT 0, 10;

这不会产生错误。如果 Accnno 不以前导零开始,也没有小数位(两者似乎都有可能),也可以只使用字符串函数:

ORDER BY LENGTH(accnno) DESC, accnno DESC

相关问题