stackoverflow的排序和限制建议对我不起作用

时间:2017-12-19 11:33:12

标签: php mysql

我尝试从表中获取10个最新条目,并在最后按升序排序,以便最新/最新条目是我看到的最后一个条目。

这是我目前的查询:

SELECT `title`, `content`, `message_id`
FROM `a_message_table`
WHERE `some-id` = 126
AND (`user_init_id` = 30 OR `user_follow_id` = 30)
ORDER BY `message_id`  DESC
LIMIT 0, 10

正如这个问题的答案所建议: Select last 20 order by ascending - PHP/MySQL

我试图像这样修改我的查询:

(SELECT `title`, `content`, `message_id`
FROM `a_message_table`
WHERE `some-id` = 126
AND (`user_init_id` = 30 OR `user_follow_id` = 30)
ORDER BY `message_id`  DESC
LIMIT 0, 10)
ORDER BY `message_id` ASC

1。)将查询放入括号

2。)添加ORDER BY message_id ASC

Mysql报告以下错误:

  1. 此类条款先前已经过分析。(位置339附近的“ORDER BY”)
  2. 未知语句类型。 (在第339位“ORDER BY”附近)
  3. #1054 - 'order clause'中的未知列'message_id'
  4. 我正在使用mysql 5.7,mariaDB。

    有人可以在这里支持,找到一种有效的方法来获取最新的10个条目,以便最新条目是最后一个。

    它适用于消息传递系统,我希望用户在向下滚动时获取最新条目。当他向上滚动时,他应该像这样订购下十个条目。这就是为什么我使用LIMIT 0,10,后来它说LIMIT 10,10等等......

1 个答案:

答案 0 :(得分:1)

使用此:

Select * from 
(SELECT `title`, `content`, `message_id`
FROM `a_message_table`
WHERE `some-id` = 126
AND (`user_init_id` = 30 OR `user_follow_id` = 30)
ORDER BY `message_id`  DESC
LIMIT 0, 10) t
ORDER BY `t`.`message_id` ASC