Есть ли в MySQL путь к COUNT(*)
из таблицы, где, если число больше x
, он там перестанет считать? По сути, я хочу знать только, является ли количество записей, возвращаемых запросом, больше или меньше определенного числа. Если оно больше этого числа, мне все равно, сколько строк, если оно меньше, подскажите мне количество.
Я смог выдумать это так:
-- let x be 100
SELECT COUNT(*) FROM (
SELECT `id` FROM `myTable`
WHERE myCriteria = 1
LIMIT 100
) AS temp
... но мне было интересно, есть ли какой-нибудь удобный встроенный способ сделать это?
Спасибо за предложения, но я должен был быть более ясным о причинах этого вопроса. Он выбирает из пары объединенных таблиц, каждая из которых содержит десятки миллионов записей. Выполнение COUNT(*)
с использованием индексированных критериев все еще занимает около 80 секунд, а выполнение без индекса занимает около 30 минут или около того. Это больше касается оптимизации запроса, а не получения правильного результата.