MySQL multi-field conditional sorting ?

Fandaminana saha maro ao amin'ny MySQL ? Fanambarana/asa fikarohana ORDER BY midina/miakatra ao amin'ny MySQL

karazana MySQL

Fantatsika ny mampiasa fanambarana SQL SELECT hamakiana angona avy amin'ny latabatra MySQL.

Raha mila mandamina ny angona novakiana isika, dia afaka mampiasa ny fehezanteny ORDER BY an'ny MySQL mba hamaritana ny saha sy ny fomba fanasokajiana tiantsika hampiasaina, ary avy eo dia mamerina ny valin'ny fikarohana.

fitsipi-pitenenana

Ity manaraka ity dia fanambarana SQL SELECT izay mampiasa ny ORDER BY clause mba handaminana ny angona fangatahana alohan'ny hamerenana ny data:

SELECT field1, field2,...fieldN table_name1, table_name2...
ORDER BY field1, [field2...] [ASC [DESC]]
  • Azonao atao ny mampiasa ny saha rehetra ho toy ny fepetra hamerenana ny valin'ny fanontaniana voalamina.
  • Azonao atao ny mametraka saha maromaro handaminana.
  • Azonao atao ny mampiasa ny teny fanalahidy ASC na DESC mba hametrahana ny valin'ny fangatahana ho voalamina amin'ny filaharana miakatra na midina.Amin'ny alàlan'ny default, dia amin'ny filaharana miakatra izany.
  • Azonao atao ny manampy clause WHERE...LIKE mba hametrahana fepetra.

Ampiasao ny ORDER BY clause ao amin'ny baikon'ny baiko

Ity manaraka ity dia hampiasa ny fehezan-teny ORDER BY ao amin'ny fanambarana SQL SELECT hamaky ny angon-drakitra ao amin'ny latabatra data MySQL chenweiliang_tbl:

OHATRA

Andramo ireto ohatra etsy ambany ireto dia halamina araka ny filaharana miakatra sy midina ny valiny.

SQL karazana

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)

Vakio ny angon-drakitra rehetra ao amin'ny tabilao chenweiliang_tbl ary alaharo amin'ny filaharana miakatra amin'ny saha submission_date.


Mampiasa ny ORDER BY clause amin'ny script PHP

Azonao atao ny mampiasa ny PHP function mysqli_query() sy ilay baiko SQL SELECT mitovy amin'ny clause ORDER BY hahazoana ny data.

Ity fiasa ity dia ampiasaina amin'ny fanatanterahana ny baiko SQL ary avy eo mamoaka ny angon-drakitra rehetra amin'ny alàlan'ny PHP function mysqli_fetch_array().

OHATRA

Andramo ity ohatra manaraka ity, averina amin'ny filaharana midina amin'ny saha submission_date ny angona nanontaniana.

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

Comments

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

Horonana Top