在MYSQL查询中使用CAST,它在本地主机上工作,但在服务器上不工作



在使用cast的mysql中,我编写了类似的查询

Acnno-varchar

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 b.*
FROM books b
WHERE b.category = 'Book'
ORDER BY (Accnno + 0) DESC
LIMIT 0, 10;

这不会产生错误。如果Accnno不以前导零开头,也没有小数点(这两种情况似乎都很可能(,那么您也可以只使用字符串函数:

ORDER BY LENGTH(accnno) DESC, accnno DESC

最新更新