쿼리에서 정렬 기능을 추가하기 위해서는 ORDER BY 키워드를 사용합니다. 정렬은 컬 럼 값을 기준으로 오름차순(ASC), 내림차순(DESC) 정렬을 할 수 있습니다.
| 쿼리 문법 |
~ ORDER BY 컬럼명 정렬 방식;
SELECT 쿼리 문장 마지막에 ORDER BY 컬럼명을 추가하여 정렬할 수 있습니다.
- ASC: 오름차순
- DESC: 내림차순
14.1.1 쿼리 실습
회원 목록 테이블에서 Id 값을 기준으로 내림차순 정렬을 합니다.
| 예제 쿼리 |
select * from members order by Id desc;
| 콘솔 실습 화면 |
mysql> select * from members order by Id desc;
+----+----------+-----------+-------------+-------+---------+
| Id | LastName | FirstName | Address | City | Country |
+----+----------+-----------+-------------+-------+---------+
| 4 | eric | jung | seocho-gu | seoul | korea |
| 3 | james | kim | youngdun-po | seoul | korea |
| 2 | jiny | NULL | NULL | NULL | korea |
| 1 | hojin | lee | shinchon | seoul | korea |
+----+----------+-----------+-------------+-------+---------+
4 rows in set (0.00 sec)
위의 예제는 데이터 출력 시 Id 값 내림차순으로 변경하여 출력합니다.
만일 정렬해야 하는 컬럼이 여러 개일 경우 콤마 (,)를 통하여 정렬할 컬럼을 추가할 수 있 습니다.
| 예제 쿼리 |
SELECT * FROM members ORDER BY Country, City;
또는 여러 컬럼을 정렬할 때 컬럼별로 정렬 방식을 지정할 수도 있습니다.
| 예제 쿼리 |
SELECT * FROM members ORDER BY Country ASC, City DESC;
14.1.2 PHP 실습
PHP 코드를 통하여 생성한 쿼리에 정렬을 추가하여 실행하도록 합니다.
| PHP 예제 | mysql.class.php 파일에 메서드 예제를 추가합니다.
public function orderBy($query,$by)
{
return $query . " ORDER BY " . $by;
}
예제 파일 | orderby-01.php
<?php
include "dbinfo.php";
include "mysql.class.php";
// ++ Mysqli DB 연결.
$db = new JinyMysql();
$query = "select FirstName, LastName, City, Country from members";
$queryString = $db->orderBy($query,"Country ASC, City DESC");
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 FirstName, LastName, City, Country from members ORDER BY Country ASC, City DESC
tables fields = 6
0=stdClass Object ( [FirstName] => lee [LastName] => hojin [City] => seoul [Country] => Korea )
1=stdClass Object ( [FirstName] => kim [LastName] => james [City] => seoul [Country] => Korea )
2=stdClass Object ( [FirstName] => hojin [LastName] => lee [City] => [Country] => Korea )
3=stdClass Object ( [FirstName] => jiny [LastName] => 1234 [City] => [Country] => Korea )
4=stdClass Object ( [FirstName] => jiny [LastName] => 1234 [City] => [Country] => Korea )
5=stdClass Object ( [FirstName] => jiny [LastName] => 123400 [City] => [Country] => Korea )