Как заставить MySQL вернуть ограниченные строки? - PullRequest
4 голосов
/ 11 января 2011

Я хотел бы ограничить результаты запроса MySQL, отправленного пользователями. В настоящее время я просто разбираю строку запроса по PHP, затем добавляю LIMIT в конце. Для более сложных запросов со множеством вложенных операций выбора / объединения все становится сложным и менее предсказуемым. Есть ли общий способ заставить mysql возвращать только ограниченные результаты, даже если пользователь запрашивает полный набор?

Спасибо
Arman

1 Ответ

2 голосов
/ 11 января 2011

Вы запрашиваете некоторые параметры конфигурации сервера, чтобы ограничить максимальное количество строк, возвращаемых всеми запросами. Таким образом, select * from mytable вернет максимальное число x (x установлено в глобальной конфигурации сервера) или строки, даже если в таблице гораздо больше строк.

К сожалению, это невозможно в стандартных дистрибутивах MySQL. Вы можете установить ограничения на максимальное количество запросов в час, даже какие операции пользователь может выполнять на сервере. Но ограничение количества строк в результате запроса не может быть установлено глобально.

Однако вы можете получить исходный код MySQL Community Edition и добавить конфигурацию для глобального лимита результатов запроса. Кроме того, если вы используете какой-то тип соединителя для подключения к MySQL (например, если вы подключаетесь к MySQL из .NET), вы можете оставить сервер как есть, но изменить код соединителя и добавить желаемый вариант конфигурации ограничения.

...