반응형
MySQL에서 지정된 행 번호로 시작하는 행을 선택하려면 어떻게 해야 합니까?
MySQL 테이블에 행이 50개 있다고 가정합니다.처음 10개를 선택합니다(LIMIT 10
), 하지만 다른 페이지에서 다음 10개를 선택할 수 있기를 원합니다.
그럼 10열 다음에 선택을 시작하려면 어떻게 해야 합니까?
업데이트된 쿼리:
mysql_query("
SELECT * FROM `picdb`
WHERE `username` = '$username'
ORDER BY `picid` DESC
LIMIT '$start','$count'
")
다음을 사용하여 첫 페이지를 얻어서 작업할 것을 권장합니다.
LIMIT 0, 10
그다음에 두번째 페이지를 위해
LIMIT 10, 10
그리고나서
LIMIT 20, 10
세번째 페이지 등등.
LIMIT 10
LIMIT 10 OFFSET 10
구문에 대한 MySQL 5.1 문서에서 다음을 참조하십시오.
Postgre와의 호환성을 위해SQL, MySQL은 LIMIT row_count OFFSET 구문도 지원합니다.
이 질문은 오래되었지만 하드코딩되지 않은 코드를 추가하고 싶습니다. 혼돈이 제공한 대답은 스크립트를 하드코딩해야 한다는 것을 의미합니다(문 선택).파일 이름을 가져온 다음 선택한 문장을 하드코딩하지 않고 현재 페이지를 기준으로 데이터베이스에서 데이터를 선택하여 동일한 결과를 얻을 수 있습니다.먼저 현재 페이지를 가져옵니다.
$page = basename($_SERVER['SCRIPT_FILENAME']);
$page_counter = rtrim($page, ".php");
//setting your limit
$start = 0;
$limit = 10;
//if current page is not index.php then $start = ($limit * page_counter);
// e.g if current page is 1.php then $start = ($limit * 1) = 10
//if current page is 2.php then $start = ($limit * 2) = 20
if ($page !== 'index.php') {
$start = ($limit * $page_counter);
}
//getting row count
$ROW_COUNT = $db->query('SELECT * from tableName')->rowCount();
//getting number of rows left in the table
$rows_left = ("SELECT * FROM tableName limit ?,?");
$rows_left = $db->prepare($rows_left);
$rows_left->execute(array($start,$ROW_COUNT));
$rows = $rows_left->fetchAll(PDO::FETCH_ASSOC);
$number_rows = 0;
foreach ($rows as $r) {
$number_rows = $number_rows + 1;
}
//if number of rows left in the table is less than 10 then $limit = the number of rows left
if ($number_rows < 10) {
$limit = $number_rows;
}
//getting all rows
$getRows = "SELECT * FROM tableName limit ?,?";
$getRows = $db->prepare($getRows);
$getRows->execute(array($start , $limit));
$getRows = $getRows->fetchAll(PDO::FETCH_ASSOC);
select * from 'table_name'
ORDER BY 'column_id 'DESC
LIMIT 0,10;
select * from 'table_name'
ORDER BY 'column_id' DESC
LIMIT 10,10;
select * from 'table_name'
ORDER BY 'column_id' DESC
LIMIT 20,10;
원하는 숫자가 나올 때까지 계속합니다.
언급URL : https://stackoverflow.com/questions/1252673/how-can-i-select-rows-in-mysql-starting-at-a-given-row-number
반응형
'programing' 카테고리의 다른 글
엑셀 라이브러리로 엑셀 파일의 셀 스타일을 변경하려면 어떻게 해야 합니까? (0) | 2023.10.21 |
---|---|
인수가 지원되는 사용자 지정 wp.media (0) | 2023.10.21 |
열을 추가하는 동안 영향을 받는 행 0개 (0) | 2023.10.21 |
Fancybox: Android 전화기에서 스크롤할 수 없습니다. (0) | 2023.10.21 |
'스크롤 보기를 자동으로 조정합니다.'Insets'는 iOS 11.0에서 더 이상 사용되지 않습니다. (0) | 2023.10.21 |