Я не думаю, что вы можете «остановить» запрос. Но если вы действительно хотите, чтобы подсчитать количество строк первого вы можете сделать это следующим образом:
Допустим, ваш поисковый запрос выглядит следующим образом
SELECT *
FROM table_name
WHERE name = 'some name';
Вы можете первым подсчитывать результаты
SELECT COUNT(*) AS num
FROM table_name
WHERE name = 'some name';
И затем выбрать только те строки (первый запрос), если Num < = 100
Чтобы объединить оба запроса в одном вы можете использовать CROSS JOIN
SELECT *
FROM (
SELECT COUNT(*) AS num
FROM table_name
WHERE name = 'some name'
) num
CROSS JOIN table_name
WHERE num.num <= 100
AND name = 'some name'
Если Num является > 100 MySQL остановится, потому что нет ничего, чтобы присоединиться.
Но:
- Его не дружественным к пользователю - лучше использовать
LIMIT
и использовать (или реализация) пейджинговой системы. не
- Нет гарантии, что это будет быстрее, чем при использовании
LIMIT
- Это будет медленнее во всех случаях, когда Num < = 100
http://www.techonthenet.com/sql/select_limit.php – intboolstring
не будет «ограничивать», все еще выполнит запрос? Мне просто нужен способ остановить запрос, прежде чем он соберет 100 и 100 результатов. – toastext