Mysql Like Offset Limit Query не работает - PullRequest
0 голосов
/ 29 января 2019

Когда я пробовал этот запрос, я не получил результатов:

SELECT * FROM m_blog 
WHERE isdeleted='0' and title LIKE '%t%' 
ORDER by createdAt DESC 
LIMIT 10 OFFSET 10

Но когда я использовал этот запрос, я получил правильные результаты:

SELECT * FROM m_blog 
WHERE isdeleted='0' and title LIKE '%t%' 
ORDER by createdAt DESC 
LIMIT 10

Я думал, что причина LIKE условие с OFFSET не работает, но почему?и как я могу использовать этот запрос?

Ответы [ 2 ]

0 голосов
/ 29 января 2019

Опция OFFSET N переместит начальный указатель на N-ю позицию и начнет возвращать строки оттуда и далее, упорядоченные по ORDER BY.

Ваш первый запрос не получает строки, потому что нет 't более 10 строк (как максимум) для извлечения.Таким образом, когда вы говорите движку «приведите меня 11-й вперед», а там только 5 строк, он ничего не возвращает.

Удалите OFFSET, чтобы просмотреть данные, или условно примените его после извлечения данных.во временную таблицу.

0 голосов
/ 29 января 2019

ЭТО ОТВЕТИТ НА ОРИГИНАЛЬНУЮ ВЕРСИЮ ВОПРОСА.

У вас нет строк, в которых выполняется это условие:

isdeleted = '0' and title LIKE '%t%'

У вас есть строки, в которых это условие выполняется:

content LIKE '%a%'

Обратите внимание, что isdeleted не применяется к этому условию.

Это не имеет ничего общего с использованием like and limit`.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...