Есть ли обходной путь для использования LIMIT в подзапросе в MySQL?

Вот мой исходный запрос ...

SELECT `id`
  FROM `properties`
 LIMIT 10, 20

Условие LIMIT предназначено для разбиение на страницы.

Теперь мне нужно получить все, как раньше, но мне нужно получить только треть строк, в которых присутствует условие.

Я придумал это, просто выбрасывая LIMIT 30 до того, как я понял, как это сделать (общее количество совпавших строк / 3) * 2.

SELECT `id`
  FROM `properties`
 WHERE `id` NOT IN (SELECT `id` 
                      FROM `properties` 
                     WHERE `vendor` = "abc" 
                  ORDER BY RAND() 
                     LIMIT 30)
LIMIT 10, 20    

MySQL сказал ...

1235 - Эта версия MySQL еще не поддерживает 'LIMIT & IN / ALL / ANY / SOME подзапрос "

Я думаю, что смогу" t используйте LIMIT в подзапросе.

Итак, это несколько вопросов, но все они связаны ...

  • Есть ли обходной путь для LIMIT в подзапросе?
  • Можно Я выбираю 1/3 совпадающих строк в MySQL?
  • Нужно ли мне преобразовать это в 2 запроса или просто выбрать все и сбросить значения строк, которые не требуются в PHP?
7
задан OMG Ponies 13 May 2011 в 22:53
поделиться