Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: COUNT и LIMIT несовместимы?
 
 автор: antf   (06.11.2014 в 23:54)   письмо автору
 
 

Здравствуйте.
Почему-то первый запрос не возвращает ничего:

SELECT COUNT(id_msg)
FROM mbm_messages
WHERE id_user = 1
AND with_id_user = 11
LIMIT 5, 5 


Ограничение можно обойти, если выполнить второй запрос и посчитать количество возвращаемых рядов средствами php:


SELECT id_msg
FROM mbm_messages
WHERE id_user = 1
AND with_id_user = 11
LIMIT 5, 5


Интересно, COUNT и LIMIT несовместимы?

  Ответить  
 
 автор: Trianon   (07.11.2014 в 01:28)   письмо автору
 
   для: antf   (06.11.2014 в 23:54)
 

Первый запрос без LIMIT вернет одну единственную строку (поскольку применена агрегатная функция (здесь - COUNT, но на самом деле - с любой будет одинаково) а сам агрегат на группы не разбит, будет выполнено вычисление над одной совокупной группой, и возвращена одна строка.)

LIMIT 5,5 (который воздействует на результат, а не на аргумент агрегатной обработки) пятой строки в наборе данных ответа попросту не найдет. И обрежет результат до пустого.

О совместимости говорить не приходится - поставьте GROUP BY чтоб число групп было побольше, получите в ассортименте строк более пяти, и убедитесь, что COUNT и LIMIT вполне совместимы.

Происходит это именно так, и никак иначе.
Напомню два постулата
1. строки в таблицах лежат внавал. Говорить о каком-либо предопределенном порядке строк в таблице - идеологически некорректно.
2. От сервера БД в общем случае ожидается детерминированный отклик.

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования