我已经存储在字符串中,现在我想找回它们以降序作为数据库表格一些数量的数据作为数字的号码来查询订单从数据库的数字我可以做到这一点,我如何才能做到这一点是否有可能通过对存储为字符串中的数据库获得降序排列
select * from article order by numbers DESC
它导致数量为
90
89
88
1000
10
1
我已经存储在字符串中,现在我想找回它们以降序作为数据库表格一些数量的数据作为数字的号码来查询订单从数据库的数字我可以做到这一点,我如何才能做到这一点是否有可能通过对存储为字符串中的数据库获得降序排列
select * from article order by numbers DESC
它导致数量为
90
89
88
1000
10
1
您不必逐一选择的这种,你只需要指定ORDER BY部分为数字。
SELECT * FROM article ORDER BY CAST(numbers AS SIGNED) DESC;
select * from article order by numbers DESC
顺序有2个选项:DESC(结尾)和ASC(结束)(ASC是默认的)。
您需要指定确切的列,以便在您需要转换SQL可以使用CAST()
功能。
SELECT CAST(numbers AS INT) FROM article ORDER BY numbers DESC
这将以正确的顺序而不是按字母排序返回数字。
我假设你用“String”表示“VARCHAR”。使用INT并将数字存储为数字将为您节省很多麻烦。
如果实在无法避免存储这些数字,这样,你总是可以用零到一定规模,使他们以正确的顺序返回垫它们。
您正在将数字存储为varchar。不是数字。他们正在按字符串排序
SELECT numbers
FROM article
ORDER BY CAST(numbers AS INT) DESC;
如果它们是数字,则将它们存储为这样。您也将无法使用索引优化,因为CAST
并将其作为数字数据类型不是字符串数据类型? – gbn 2012-01-16 13:41:34