所以我为一个特定的查询加入了两个表。在一个复杂的 SELECT 语句之后,该表会模糊地看起来像这样: $myid = 3
邮政编码 | FromUserID | 至用户 ID|日期 | 发表过 | 点赞数|SeenLike 61 | 48 | 3 | 2013 年 5 月 11 日 | 1 | 1 | 1 59 | 3 | 3 | 2013 年 4 月 11 日 | 1 | 1 | 0 58 | 3 | 3 | 2013 年 4 月 11 日 | 1 | 1 | 1 25 | 47 | 3 | 2013 年 3 月 11 日 | 1 | 2 | 0 53 | 56 | 3 | 2/11/13 | 0 | 3 | 1 21 | 3 | 55 | 2013 年 1 月 11 日 | 1 | 0 | 无效的 20 | 56 | 3 | 30/10/13| 1 | 0 | 无效的 18 | 47 | 3 | 29/10/13| 0 | 0 | 无效的
如果 NumLikes 等于 0,则 SeenLike 列为空。PostSeen 将始终为 0 或 1。我将日期以简化格式放在这里,但它是正确的 DateTimed。
本质上,我想做一些相当于
if(FromUserID == $myid && NumLikes > 0){
ORDER BY SeenLike ASC, Date DESC
}
if (FromUserID != $myid) {
ORDER BY PostSeen ASC, Date DESC
}
(我知道这是完全错误的,它只是为了模糊地说明我的目标)所以它会对结果进行排序,如下所示:
邮政编码 | FromUserID | 至用户 ID|日期 | 发表过 | 点赞数|SeenLike 59 | 3 | 3 | 2013 年 4 月 11 日 | 1 | 1 | 0 25 | 47 | 3 | 2013 年 3 月 11 日 | 1 | 2 | 0 53 | 56 | 3 | 2/11/13 | 0 | 3 | 1 18 | 47 | 3 | 29/10/13| 0 | 0 | 无效的 61 | 48 | 3 | 2013 年 5 月 11 日 | 1 | 1 | 1 58 | 3 | 3 | 2013 年 4 月 11 日 | 1 | 1 | 1 21 | 3 | 55 | 2013 年 1 月 11 日 | 1 | 0 | 无效的 20 | 56 | 3 | 30/10/13| 1 | 0 | 无效的
我该怎么做呢?我已经尝试过 IF 和 CASE,但到目前为止都没有奏效。也希望对任何答案做出解释!谢谢你的帮助!