Упорядочить и ограничить предложения от stackoverflow не работает для меня

0

Я пытаюсь получить 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

Как предлагается ответить на этот вопрос: выберите последний 20-й порядок по возрастанию - 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. Этот тип предложения был ранее проанализирован (около "ORDER BY" в позиции 339)
  2. неизвестный тип оператора. (около "ORDER BY" в позиции 339)
  3. # 1054 - Неизвестный столбец 'message_id' в 'order clause'

Я использую mysql 5.7, mariaDB.

Кто-то может здесь поддержать, чтобы найти эффективный способ получить последние десять записей таблицы, упорядоченной так, чтобы последняя запись была последней.

Это для системы обмена сообщениями, и я хочу, чтобы пользователь получил последнюю запись, когда он прокручивается вниз. Когда он прокручивается, он должен получить следующие десять записей, заказанных таким образом. Вот почему я использую LIMIT 0,10, позже он говорит LIMIT 10, 10 и так далее...

Теги:

1 ответ

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
  • 0
    Я использовал именно ваш запрос и сразу получаю следующие ошибки: 1. Ожидалось выражение. (около "(" в позиции 14) Неожиданный знак. (около "(" в позиции 14) 2. Этот тип предложения был ранее проанализирован. (около "SELECT" в позиции 17) 3. Этот тип предложения был ранее проанализировано. (возле "ORDER BY" в позиции 361) 4. Неопознанный тип оператора. (возле "ORDER BY" в позиции 361) Может быть, я использую неправильный двигатель или что-то в этом роде? Я не уверен, что твое предложение может сработать ...
  • 0
    Если 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 работает, вышеуказанный будет работать.
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню