MySQL uvjetno sortiranje s više polja? MySQL poredak prema silaznoj i uzlaznoj izjavi/funkciji upita

MySQLUvjetno sortiranje s više polja?MySQL redoslijed prema silaznoj i uzlaznoj upitnoj naredbi/funkciji

MySQL sortiranje

Znamo koristiti SQL SELECT naredbu za čitanje podataka iz MySQL tablice.

Ako trebamo sortirati pročitane podatke, možemo koristiti MySQL NARUČITE PO klauzulu za postavljanje polja po kojem želite sortirati, a zatim vratiti rezultate pretraživanja.

gramatika

Slijedi SQL izjava SELECT koja koristi klauzulu ORDER BY za sortiranje podataka upita prije vraćanja podataka:

SELECT field1, field2,...fieldN table_name1, table_name2...
ORDER BY field1, [field2...] [ASC [DESC]]
  • Možete koristiti bilo koje polje kao uvjet sortiranja za vraćanje sortiranih rezultata upita.
  • Možete postaviti više polja za sortiranje.
  • Možete koristiti ključne riječi ASC ili DESC da biste postavili sortiranje rezultata upita uzlaznim ili silaznim redoslijedom.Prema zadanim postavkama, to je u uzlaznom redoslijedu.
  • Možete dodati WHERE...LIKE odredbe za postavljanje uvjeta.

Korištenje klauzule ORDER BY u naredbenom retku

Sljedeće će koristiti klauzulu ORDER BY u SQL SELECT naredbi za čitanje podataka u MySQL podatkovnoj tablici chenweiliang_tbl:

primjer

Isprobajte primjere u nastavku i rezultati će biti poredani uzlaznim i silaznim redoslijedom.

SQL sortiranje

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)

Pročitajte sve podatke u tablici chenweiliang_tbl i poredajte uzlaznim redoslijedom prema polju submission_date.


Korištenje klauzule ORDER BY u PHP skripti

Za dobivanje podataka možete koristiti PHP funkciju mysqli_query() i istu SQL naredbu SELECT s klauzulom ORDER BY.

Ova se funkcija koristi za izvršavanje SQL naredbi i zatim ispis svih traženih podataka putem PHP funkcije mysqli_fetch_array().

primjer

Pokušajte sa sljedećim primjerom, traženi podaci se vraćaju silaznim redoslijedom polja 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);
?>

发表 评论

Vaša email adresa neće biti objavljena. Koriste se obavezna polja * Označiti

Dođite na vrh