다음 학기 학교 도서관을 담당하는 프로젝트의 일환으로 지금 비즈니스 설계에 어려움을 겪고 있습니다.
예를 들어 홈페이지에서 학생들이 관련 정보를 쿼리할 때 모든 정보를 로드하기 위해 ajax를 사용할 계획입니다. 저는 Zhihu와 같이 하단으로 드래그하여 자동으로 로드되는 많은 웹사이트에 익숙하지 않습니다. 내 생각은 하단에 페이징 옵션을 설정하고, 각 페이지에 15개의 레코드를 표시하고, ajax를 사용하여 모든 기사를 로드하는 것입니다.
이런 식으로 SQL 문을 select xxx from xxx condition limit 15 offset xxx
。但是现在由于要做分页,我必须要知道一个学生总共有多少条记录在数据库中,前端才好设计,总记录可以通过sql语句select count(*) from xxx condition
쿼리한 후 전체 레코드가 프런트 엔드에 저장됩니다.
이 경우 쿼리를 두 개의 SQL 문으로 분할해야 하는데, 이보다 더 우아한 구현 솔루션이 있을까요?
ps: 유사한 페이징 디자인을 요구하는 시스템에는 유사한 비즈니스가 많기 때문에 두 개의 SQL 문을 사용하여 매번 별도로 쿼리하는 것은 너무 부적절합니다.
보충제
응답자는질문을 보지도 않는 것 같습니다
. 한 사람은 SQL 문 1에 대해 답변했고, 다른 사람은 프런트엔드에 대해 이야기했습니다.답변해 주셔서 감사합니다. 문제가 해결되었습니다. 두 개의 SQL 문만 사용할 수 있는 것 같습니다 ^_^
🎜仅有的幸福2017-06-06 09:53:51
생각하지 마세요. 2개여야 합니다.
하나를 가질 수도 있습니다:
select * from table
union
select 0, 0...., count(*) from table
怪我咯2017-06-06 09:53:51
이것은 정상입니다. SQL을 사용하여 문제를 해결하려면 데이터베이스의 모든 개체를 확인하고 일련의 작업을 수행해야 하지만 메모리가 폭발할 수도 있습니다.
淡淡烟草味2017-06-06 09:53:51
생각하지 마세요. 둘이겠죠. 페이징 구현은 일반 클래스 페이지<T>를 정의하고 그 안에 무엇이 들어 있는지 더 자세히 설명해 주시겠습니까?