מיון מותנה מרובה שדות של MySQL? סדר MySQL לפי משפט/פונקציה של שאילתה יורד ועולה

מיון רב-שדות ב-MySQL ? שאילתת סדר יורד/עולה ב- MySQL ORDER BY/הפועלת

מיון MySQL

אנו יודעים להשתמש במשפט SQL SELECT כדי לקרוא נתונים מטבלת MySQL.

אם עלינו למיין את הנתונים הנקראים, נוכל להשתמש בפסקת ORDER BY של MySQL כדי לציין באיזה שדה ושיטת מיון נרצה להשתמש, ולאחר מכן להחזיר את תוצאות החיפוש.

דקדוק

להלן משפט SQL SELECT המשתמש בסעיף ORDER BY כדי למיין את נתוני השאילתה לפני החזרת הנתונים:

SELECT field1, field2,...fieldN table_name1, table_name2...
ORDER BY field1, [field2...] [ASC [DESC]]
  • אתה יכול להשתמש בכל שדה כתנאי מיון כדי להחזיר תוצאות שאילתות ממוינות.
  • אתה יכול להגדיר מספר שדות למיון.
  • אתה יכול להשתמש במילות המפתח ASC או DESC כדי להגדיר את תוצאות השאילתה למיון בסדר עולה או יורד.כברירת מחדל, זה בסדר עולה.
  • אתה יכול להוסיף סעיפי WHERE...LIKE כדי לקבוע תנאים.

שימוש בסעיף ORDER BY בשורת הפקודה

הדברים הבאים ישתמשו בסעיף ORDER BY במשפט SQL SELECT כדי לקרוא את הנתונים בטבלת הנתונים 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 ומיון בסדר עולה לפי השדה submission_date.


שימוש בסעיף ORDER BY בסקריפט PHP

אתה יכול להשתמש בפונקציית PHP mysqli_query() ובאותה פקודת SQL SELECT עם משפט ORDER BY כדי לקבל את הנתונים.

פונקציה זו משמשת לביצוע פקודות SQL ולאחר מכן פלט את כל הנתונים שנשאלו דרך פונקציית PHP mysqli_fetch_array().

דוגמא

נסה את הדוגמה הבאה, הנתונים הנשאלים מוחזרים בסדר יורד של השדה submission_date.

MySQL ORDER BY test:

<?
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);
?>

发表 评论

您的邮箱地址不会被公开。必填项已用*标注

גלול למעלה