我有以下名为 recordbase
的sql关系 + ---- + ---------- + ---------- +
| id | 观看次数 | 名称 |
+ ---- + ---------- + ---------- +
| 1 | 120 | ABCD |
+ ---- + ---------- + ---------- +
| 2 | 200 | CDEF |
+ ---- + ---------- + ---------- +
| 3 | 200 | EFGH |
+ ---- + ---------- + ---------- +
| 4 | 100 | ghmk |
+ ---- + ---------- + ---------- +
现在我想按视图的降序显示结果。我使用以下查询来获取具有最大视图的条目:
SELECT name FROM recordbase WHERE views IN (SELECT max(views) FROM recordbase);
处理此SQL查询(在PHP中)后,具有最大视图的条目的 id 保存在变量$currentid
中,其视图(即最大视图)存储在{{ 1}}。为了获得进一步的降序,我可以循环以下块:
$temp
但是这会产生问题,好像有两个条目具有相同的SELECT name FROM recordbase WHERE views IN (SELECT max(views) FROM recordbase WHERE views < '$temp')
$temp = views returned by above query
并且是最大的,例如,条目2和3具有相同的views
值并且是最大值,那么输出将包括结果如下:
CDEF
ABCD
ghmk
虽然我需要以下输出:
CDEF
EFGH
ABCD
ghmk
是否有任何预先定义的函数可以解决使用相同值对值进行排序的问题。 或者我做错了,有更好的方法吗?
答案 0 :(得分:2)
SELECT name FROM recordbase order by views desc,name asc;