부분출력


쿼리 다음에 LIMIT 숫자만 작성하는 것은 상단 데이터의 일부를 선택하는 것입니다. 대시보드(dashboard)와 같이 데이터의 상위 몇 개만 출력할 때는 이와 같은 간단한 출력 제한은 편리합니다.

하지만 제일 상단이 아닌 중간의 일부분만을 데이터로 읽어오고자 할 경우에는 LIMIT 인 자를 더 주어야 합니다.

| 쿼리 문법 |

SELECT 컬럼명, 컬럼명,  FROM 테이블명 LIMIT 시작, 표시할 ;

LIMIT 다음에 콤마 (,)를 통하여 시작 값과 출력할 개수를 지정하면 데이터의 일부 영역의 내용만 제한하여 출력할 수 있습니다.


콘솔 실습


시작 값은 데이터를 출력할 offset과 같은 성격을 가집니다. 데이터의 출력 위치를 이동후에 지정한 데이터의 수만큼 읽어서 화면에 출력합니다.

| 예제 쿼리 |

select code from orders limit 2, 3; 

주문 목록에서 위치를 2로 이동한 다음에 연속된 3개의 데이터를 출력합니다.

| 콘솔 실습 화면 |

mysql> select code from orders limit 2, 3; +-------+ | code | +-------+ | O_003 | | O_004 | | O_005 | +-------+ 3 rows in set (0.00 sec) 

따라서 두 번째 데이터부터 연속된 3개의 데이터만 출력합니다.


PHP 실습


PHP 코드를 이용하여 데이터의 일정 부분의 영역을 출력합니다.

예제 파일 | limit-02.php

<?php

	include "dbinfo.php";
	include "mysql.class.php";
 
	// ++ Mysqli DB 연결.
	$db = new JinyMysql();

	// 기본 select 쿼리
	$query = "SELECT Id, FirstName, LastName FROM members";
	// 기본쿼리에 limit 제한을 설정합니다.
	$queryString = $db->limit($query,2,3);
    
	if ($rowss = $db->selectRowss($queryString)) {
		echo "tables fields = ". count($rowss) . "<br>";
 
		for ($i=0;$i<count($rowss);$i++) {
			echo $i."=";            
			print_r($rowss[$i]);
			echo "<br>";
		}
	}

?>
  

화면 출력

mysql connected!
쿼리성공] SELECT Id, FirstName, LastName FROM members limit 2 ,3
tables fields = 3
0=stdClass Object ( [Id] => 3 [FirstName] => kim [LastName] => james )
1=stdClass Object ( [Id] => 5 [FirstName] => jiny [LastName] => 1234 )
2=stdClass Object ( [Id] => 6 [FirstName] => jiny [LastName] => 1234 )