Я сказал бы, чтобы просто удалить сообщения, поскольку Вы узнаете их и блокируете пользователей, которые являются чрезмерно явными с их регистрациями. Можно сказать очень наступательные вещи, не используя ругательств. Если Вы заблокируете задницу слова (иначе осел), то люди просто введут $ a$ или/\55, или независимо от того, что они должны ввести для заканчивания фильтра.
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
, но не быстрее (насколько я могу судить) от just:
select count(*) from stockinfo
, который вернул 5170965.