我有一个名为visitas
= varchar(20)的列。
我想要的是在过去3天内选择访问次数较多的主题,首先是访问量较多的主题,所以我尝试了:
SELECT titulo, id, visitas from posts where data >= DATE_SUB(NOW(),INTERVAL 3 day) order by visitas desc limit 10
但是order by visitas desc
没有按照我的意愿运作,它不会先订阅更多访问者的主题...
topic1 title 2(visits)
topic2 title 2(visits)
topic3 title 10(visits)
topic4 title 1(visits)
我需要改变什么? 谢谢啦!
答案 0 :(得分:1)
您应该将列更改为INT
。整数在数字上进行比较,字符串按字典顺序进行比较。所以字符串'10'
低于'2'
,因为它只是逐个字符地比较它。
如果您无法更改数据类型,则可以在查询中对其进行转换
ORDER BY CAST(visitas AS DECIMAL) DESC