기사 디렉토리
MySQL에서 여러 필드를 정렬하는 방법은 무엇인가요? MySQL의 ORDER BY 절을 사용하여 내림차순/오름차순으로 정렬하는 쿼리문/함수는 무엇인가요?
MySQL 정렬
우리는 SQL SELECT 문을 사용하여 MySQL 테이블에서 데이터를 읽는 것을 알고 있습니다.
읽어온 데이터를 정렬해야 하는 경우 MySQL의 ORDER BY 절을 사용하여 사용할 필드와 정렬 방법을 지정한 다음 검색 결과를 반환할 수 있습니다.
문법
다음은 ORDER BY 절을 사용하여 데이터를 반환하기 전에 쿼리 데이터를 정렬하는 SQL SELECT 문입니다.
SELECT field1, field2,...fieldN table_name1, table_name2... ORDER BY field1, [field2...] [ASC [DESC]]
- 모든 필드를 정렬 조건으로 사용하여 정렬된 쿼리 결과를 반환할 수 있습니다.
- 정렬할 여러 필드를 설정할 수 있습니다.
- ASC 또는 DESC 키워드를 사용하여 쿼리 결과가 오름차순 또는 내림차순으로 정렬되도록 설정할 수 있습니다.기본적으로 오름차순입니다.
- WHERE...LIKE 절을 추가하여 조건을 설정할 수 있습니다.
명령 프롬프트에서 ORDER BY 절 사용
다음은 SQL SELECT 문의 ORDER BY 절을 사용하여 MySQL 데이터 테이블 chenweiliang_tbl의 데이터를 읽습니다.
예
아래 예를 시도하면 결과가 오름차순 및 내림차순으로 정렬됩니다.
SQL 정렬
mysql> use chenweiliang; Database changed mysql> SELECT * from chenweiliang_tbl ORDER BY submission_date ASC; +-----------+---------------+---------------+-----------------+ | chenweiliang_id | chenweiliang_title | chenweiliang_author | submission_date | +-----------+---------------+---------------+-----------------+ | 3 | 学习 Java | chenweiliang.com | 2015-05-01 | | 4 | 学习 Python | chenweiliang.com | 2016-03-06 | | 1 | 学习 PHP | 陈沩亮博客 | 2017-04-12 | | 2 | 学习 MySQL | 陈沩亮博客 | 2017-04-12 | +-----------+---------------+---------------+-----------------+ 4 rows in set (0.01 sec) mysql> SELECT * from chenweiliang_tbl ORDER BY submission_date DESC; +-----------+---------------+---------------+-----------------+ | chenweiliang_id | chenweiliang_title | chenweiliang_author | submission_date | +-----------+---------------+---------------+-----------------+ | 1 | 学习 PHP | 陈沩亮博客 | 2017-04-12 | | 2 | 学习 MySQL | 陈沩亮博客 | 2017-04-12 | | 4 | 学习 Python | chenweiliang.com | 2016-03-06 | | 3 | 学习 Java | chenweiliang.com | 2015-05-01 | +-----------+---------------+---------------+-----------------+ 4 rows in set (0.01 sec)
chenweiliang_tbl 테이블의 모든 데이터를 읽고 submit_date 필드를 기준으로 오름차순으로 정렬합니다.
PHP 스크립트에서 ORDER BY 절 사용
PHP 함수 mysqli_query() 및 동일한 SQL SELECT 명령을 ORDER BY 절과 함께 사용하여 데이터를 가져올 수 있습니다.
이 함수는 SQL 명령을 실행한 다음 PHP 함수 mysqli_fetch_array()를 통해 쿼리된 모든 데이터를 출력하는 데 사용됩니다.
예
다음 예를 시도하면 쿼리된 데이터가 submit_date 필드의 내림차순으로 반환됩니다.
MySQL ORDER BY 테스트:
<?
php
$dbhost = 'localhost:3306'; // 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 chenweiliang_id, chenweiliang_title,
chenweiliang_author, submission_date
FROM chenweiliang_tbl
ORDER BY submission_date ASC';
mysqli_select_db( $conn, 'chenweiliang' );
$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, MYSQL_ASSOC))
{
echo "<tr><td> {$row['chenweiliang_id']}</td> ".
"<td>{$row['chenweiliang_title']} </td> ".
"<td>{$row['chenweiliang_author']} </td> ".
"<td>{$row['submission_date']} </td> ".
"</tr>";
}
echo '</table>';
mysqli_close($conn);
?>Chen Weiliang님의 블로그( https://www.chenweiliang.com/ ) 에 공유된 "MySQL 다중 필드 조건 정렬? MySQL ORDER BY 내림차순/오름차순 쿼리문/함수"라는 글이 여러분께 도움이 되기를 바랍니다.
이 기사 링크( https://www.chenweiliang.com/cwl-476.html )를 자유롭게 공유해 주세요.
