在使用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”附近的正确语法
SELECT * FROM books where category = 'Book' ORDER BY CAST(Accnno AS int) DESC LIMIT 0,10
xzlaal3s1#
我建议使用隐式转换:
SELECT b.* FROM books b WHERE b.category = 'Book' ORDER BY (Accnno + 0) DESC LIMIT 0, 10;
这不会产生错误。如果 Accnno 不以前导零开始,也没有小数位(两者似乎都有可能),也可以只使用字符串函数:
Accnno
ORDER BY LENGTH(accnno) DESC, accnno DESC
1条答案
按热度按时间xzlaal3s1#
我建议使用隐式转换:
这不会产生错误。如果
Accnno
不以前导零开始,也没有小数位(两者似乎都有可能),也可以只使用字符串函数: