Подсчитайте из таблицы, но остановите подсчет с определенным номером

Есть ли способ в MySQL для COUNT(*) из таблицы, где, если число больше, чем x , оно перестает считать там? В принципе, я только хочу знать, больше ли количество записей, возвращаемых из запроса, больше определенного числа. Если это больше, чем число, мне все равно, сколько строк есть, если это меньше, скажите мне счет.

Я смог выдумать это так:

 -- let x be 100 SELECT COUNT(*) FROM ( SELECT `id` FROM `myTable` WHERE myCriteria = 1 LIMIT 100 ) AS temp 

… но мне было интересно, есть ли какой-нибудь удобный встроенный способ сделать это?


Спасибо за предложения, но я должен был бы более четко объяснить причины этого вопроса. Он выбирает из пары соединенных таблиц, каждый из которых содержит десятки миллионов записей. Запуск COUNT(*) с использованием индексированных критериев по-прежнему занимает около 80 секунд, запуск одного без индекса занимает около 30 минут или около того. Это скорее оптимизация запроса, чем получение правильного вывода.

 SELECT * FROM WhateverTable WHERE WhateverCriteria LIMIT 100, 1 

LIMIT 100, 1 возвращает 101-ю запись, если она есть, или нет записи иначе. Возможно, вы сможете использовать указанный выше запрос в качестве подзапроса в предложениях EXIST, если это поможет.

Я ничего не могу придумать. Мне кажется, что то, что вы делаете, точно соответствует цели, и SQL, конечно же, кажется, не позволяет ему сделать это проще для вас, чтобы сделать это более лаконично.

Рассмотрим это: то, что вы пытаетесь сделать, не имеет смысла в строгом контексте заданной арифметики. Математически, ответ состоит в том, чтобы подсчитать все, а затем взять MIN() со 100, что является тем, что вы (прагматично и с полным основанием) пытаетесь избежать.

Это работает:

 select count(*) from ( select * from stockinfo s limit 100 ) s 

но не был быстрее (я мог сказать):

 select count(*) from stockinfo 

который вернулся 5170965.