מדריך מאמרים
MySQLמיון מותנה רב שדות?MySQL סדר לפי משפט/פונקציה של שאילתה יורד ועולה
מיון MySQL
אנו יודעים להשתמש במשפט SQL SELECT כדי לקרוא נתונים מטבלת MySQL.
אם אנחנו צריכים למיין את נתוני הקריאה, נוכל להשתמש ב-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);
?>Hope Chen Weiliang בלוג ( https://www.chenweiliang.com/ ) שיתף "מיון מותנה מרובה שדות של MySQL? סדר MySQL לפי משפט/פונקציה של שאילתה יורד ועולה", מה שמועיל לך.
מוזמנים לשתף את הקישור של מאמר זה:https://www.chenweiliang.com/cwl-476.html
