2011-01-11 4 views
4

사용자가 제출 한 mysql 쿼리의 결과를 제한하고 싶습니다. 현재 PHP로 쿼리 문자열을 파싱하고 있으며 결국에는 LIMIT을 추가합니다. 중첩 된 선택/조인이 많은 복잡한 쿼리의 경우 상황이 복잡해지고 예측 가능성이 낮아집니다. 사용자가 풀 세트를 요구하더라도 제한된 결과 만 반환하도록 mysql을 강제하는 일반적인 방법이 있습니까? 아르 멘제한된 행을 반환하도록 MySQL을 강제하는 방법은 무엇입니까?

+3

LIMIT은 올바른 방법입니다. 성취하고자하는 것은 정확히 무엇입니까? –

+0

4Tb 테이블이 있지만 최대 50 행을 검색 할 수 있습니다. 사용자는 읽기 전용 모드로 액세스 할 수 있습니다. – Arman

답변

2

당신은 일부 서버의 구성 설정을 요구하고

덕분에 모든 쿼리에 의해 반환 된 행의 최대 수를 제한합니다. 즉, select * from mytable은 테이블에 더 많은 행이 있더라도 최대 x x 호 (x는 글로 z 서버 구성에 설정 됨) 또는 행을 리턴합니다.

불행히도 MySQL의 표준 배포판에서는 불가능합니다. 사용자가 서버에서 수행 할 수있는 작업조차도 시간당 최대 쿼리에 대한 제한을 설정할 수 있습니다. 그러나 쿼리 결과의 행 수 제한은 전역 적으로 설정할 수 없습니다.

그러나 MySQL 커뮤니티 버전 소스 코드를 얻고 글로벌 쿼리 결과 제한에 대한 구성을 추가 할 수 있습니다. 또한, 일종의 커넥터를 사용하여 MySQL에 연결하는 경우 (예 : .NET에서 MySQL에 연결하는 경우) 서버를 그대로 둘 수 있지만 커넥터 코드를 수정하고 원하는 제한 구성 옵션을 추가 할 수 있습니다 .

+0

팁 주셔서 감사합니다, 나는 PHP를 사용하고 있습니다 : PDO 커넥터하지만 다시 나는 한계를 추가하기 위해 SQL 파서를 작성해야합니다. – Arman

관련 문제