我尝试从表中选择数据并按2列排序。第一列(喜欢)排序好,但第二列排序不好。
SELECT *
FROM content
WHERE topic='$id' AND date='$date'
ORDER BY likes DESC, cpc DESC
LIMIT 4
我认为问题出现在LIMIT中,我将其删除,但效果不佳。 可能是什么问题? 谢谢
答案 0 :(得分:3)
没关系!它首先按likes
排序,然后如果某些数据具有相同的values
值,则按cpc
排序。但是您的likes
是唯一的,所以之间没有区别:
SELECT *
FROM content
WHERE topic='$id' AND date='$date'
ORDER BY likes DESC, cpc DESC
和
SELECT *
FROM content
WHERE topic='$id' AND date='$date'
ORDER BY likes DESC
可能你想要:
SELECT *
FROM (SELECT *
FROM content
WHERE topic='$id' AND date='$date'
ORDER BY likes DESC
LIMIT 4) a
ORDER BY a.cpc DESC
答案 1 :(得分:1)
记住表格中的所有数据都是相关的,这一点非常重要。因此,每次点击费用列中的字段值会直接与您喜欢的列中的字段值相关联。
每列的结果并不相互独立(至少不是您编写此查询的方式)。
因此,考虑到这一概念,这些数据是正确排序的。您的“喜欢”列已排序,然后根据静态“喜欢”排序对CPC进行排序。如果你有两行数据有20个喜欢而CPC分别是2和20,那么你会看到这些值根据你的顺序排序
Order by cpc desc
线。但是,由于您的Likes行只有20个CPC值,因此这将是要显示的值。对下一行采用相同的示例,然后使用相同的示例,您可以看到值确实按顺序显示。