English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

MySQL 정렬

MySQL 테이블에서 SQL SELECT 문을 사용하여 데이터를 읽는 방법을 알고 있습니다.

데이터를 정렬해야 할 경우 MySQL의 ORDER BY 절을 사용할 수 있습니다. ORDER BY 어떤 필드를 사용하여 어떤 방식으로 정렬하려고 하는지 설정한 후 검색 결과를 반환하는 절을 설정합니다.

문법

아래는 SQL SELECT 문에서 ORDER BY 절을 사용하여 쿼리 데이터를 정렬한 후 데이터를 반환하는 예제입니다:

SELECT 필드1, 필드2,...필드N FROM 테이블 이름1, 테이블 이름2...
ORDER BY 필드1 [ASC [DESC][기본적으로 ASC]], [필드2...] [ASC [DESC][기본적으로 ASC]]
  • 정렬된 쿼리 결과를 반환하기 위해 어떤 필드를 사용할지 설정할 수 있습니다.

  • 여러 필드를 정렬할 수 있습니다.

  • ASC 또는 DESC 키워드를 사용하여 쿼리 결과가 오름차순 또는 내림차순으로 정렬되도록 설정할 수 있습니다. 기본적으로는 오름차순으로 정렬됩니다.

  • WHERE...LIKE 절을 추가하여 조건을 설정할 수 있습니다.

명령 프롬프트에서 ORDER BY 절을 사용합니다

다음은 SQL SELECT 문에서 ORDER BY 절을 사용하여 MySQL 데이터 테이블 w를 읽습니다.3codebox_tbl에 있는 데이터:

온라인 예제

다음 예제를 시도해 보세요. 결과는 오름차순 및 내림차순으로 정렬됩니다.

mysql> use w3codebox;
데이터베이스 변경됨
MariaDB [w3codebox]> SELECT * from w3codebox_tbl ORDER BY submission_date ASC;
+----------+-------------+--------------+-----------------+
| w3codebox_id | w3codebox_title | w3codebox_author | submission_date |
+----------+-------------+--------------+-----------------+
|        1 | PHP 학습   | oldtoolbag.com    | 2018-04-14      |
|        2 | MySQL 학습 | oldtoolbag.com    | 2018-04-14      |
|        3 | JAVA 교육   | oldtoolbag.com    | 2018-04-14      |
|        4 | Python 학습 | oldtoolbag.com    | 2019-06-08      |
+----------+-------------+--------------+-----------------+
4 쿼리에서 가져온 행 (0.00 초)
MariaDB [w3codebox]> SELECT * from w3codebox_tbl ORDER BY submission_date DESC;
+----------+-------------+--------------+-----------------+
| w3codebox_id | w3codebox_title | w3codebox_author | submission_date |
+----------+-------------+--------------+-----------------+
|        4 | Python 학습 | oldtoolbag.com    | 2019-06-08      |
|        1 | PHP 학습   | oldtoolbag.com    | 2018-04-14      |
|        2 | MySQL 학습 | oldtoolbag.com    | 2018-04-14      |
|        3 | JAVA 교육   | oldtoolbag.com    | 2018-04-14      |
+----------+-------------+--------------+-----------------+
4 rows in set (0.02 sec)

w3codebox_tbl 테이블의 모든 데이터를 submission_date 필드의 오름차순으로 정렬합니다.

PHP 스크립트에서 ORDER BY 절 사용

PHP 함수 mysqli_query() 및 동일한 SQL SELECT ORDER BY 절을 사용하여 데이터를 가져옵니다.

이 함수는 SQL 명령을 실행한 후 PHP 함수 mysqli_fetch_array()를 통해 모든 쿼리 데이터를 출력하는 데 사용됩니다.

온라인 예제

다음 예제를 시도하여, 데이터를 검색한 후 submission_date 필드의 내림차순으로 정렬하여 반환합니다.

<?php
$dbhost = 'localhost';  // MySQL 서버 호스트 주소
$dbuser = 'root';            // MySQL 사용자 이름
$dbpass = '123456';          // MySQL 사용자 이름 비밀번호
$conn = mysqli_connect($dbhost, $dbuser, $dbpass);
if(! $conn )
{
    die('연결 실패: ' . mysqli_error($conn));
}
// 编码 설정,中文 무좌표를 방지
mysqli_query($conn , "set names utf8");
 
$sql = 'SELECT w3codebox_id, w3codebox_title, 
        w3codebox_author, submission_date
        FROM w3codebox_tbl
        ORDER BY  submission_date ASC';
 
mysqli_select_db( $conn, 'w3codebox' );
$retval = mysqli_query( $conn, $sql );
if(! $retval )
{
    die('데이터 읽기 실패: ' . mysqli_error($conn));
}
echo '<h2">기본 강의 웹 MySQL ORDER BY 테스트<h2">;</
echo '<table border="1><tr><td> 강의 ID</td><td>제목</td><td>저자</td><td>제출 날짜</td></tr>';
while($row = mysqli_fetch_array($retval))
{
    echo "<tr><td> {$row['w3codebox_id']}</td> ".
         "<td>{$row['w3codebox_title']} </td> ".
         "<td>{$row['w3codebox_author']} </td> ".
         "<td>{$row['submission_date']} </td> ".
         "</tr>";
}
echo '</table>';
mysqli_close($conn);
?>

출력 결과는 다음과 같습니다: