MySQL daudzlauku nosacījuma kārtošana? MySQL secība pēc dilstošā un augošā vaicājuma priekšraksta/funkcijas

MySQLVairāku lauku nosacītā šķirošana?MySQL sakārtot pēc dilstošā un augošā vaicājuma priekšraksta/funkcijas

MySQL kārtošana

Mēs zinām, ka ir jāizmanto SQL SELECT priekšraksts, lai nolasītu datus no MySQL tabulas.

Ja mums ir jākārto lasītie dati, mēs varam izmantot MySQL SAKĀRTOT PĒC klauzulu, lai iestatītu, pēc kura lauka vēlaties kārtot, un pēc tam atgriezt meklēšanas rezultātus.

gramatika

Šis ir SQL SELECT priekšraksts, kas izmanto klauzulu ORDER BY, lai kārtotu vaicājuma datus pirms datu atgriešanas:

SELECT field1, field2,...fieldN table_name1, table_name2...
ORDER BY field1, [field2...] [ASC [DESC]]
  • Varat izmantot jebkuru lauku kā kārtošanas nosacījumu, lai atgrieztu sakārtotus vaicājuma rezultātus.
  • Varat iestatīt vairākus kārtošanas laukus.
  • Varat izmantot ASC vai DESC atslēgvārdus, lai iestatītu vaicājuma rezultātu kārtošanu augošā vai dilstošā secībā.Pēc noklusējuma tas ir augošā secībā.
  • Lai iestatītu nosacījumus, varat pievienot WHERE...LIKE klauzulas.

Izmantojot klauzulu ORDER BY komandu uzvednē

Lai nolasītu datus MySQL datu tabulā chenweiliang_tbl, SQL SELECT priekšrakstā tiks izmantota klauzula ORDER BY:

Piemērs

Izmēģiniet tālāk sniegtos piemērus, un rezultāti tiks sakārtoti augošā un dilstošā secībā.

SQL kārtošana

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)

Izlasiet visus datus tabulā chenweiliang_tbl un kārtojiet augošā secībā pēc iesniegšanas_datuma lauka.


Klauzulas ORDER BY izmantošana PHP skriptā

Lai iegūtu datus, varat izmantot PHP funkciju mysqli_query() un to pašu SQL SELECT komandu ar ORDER BY klauzulu.

Šo funkciju izmanto, lai izpildītu SQL komandas un pēc tam izvadītu visus vaicātos datus, izmantojot PHP funkciju mysqli_fetch_array().

Piemērs

Izmēģiniet šo piemēru, vaicātie dati tiek atgriezti dilstošā secībā laukā submission_date.

MySQL ORDER BY tests:

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

发表 评论

Jūsu e-pasta adrese netiks publicēta. 必填 项 已 用 * Etiķete

Ritiniet uz augšu