Makale Rehberi
MySQL'de çok alanlı sıralama? MySQL ORDER BY azalan/artan sıralama sorgu ifadesi/fonksiyonu
MySQL sıralama
MySQL tablosundan veri okumak için SQL SELECT deyimini kullanmayı biliyoruz.
Okunan verileri sıralamamız gerekiyorsa, MySQL'in ORDER BY yan tümcesini kullanarak hangi alanı ve sıralama yöntemini kullanmak istediğimizi belirtebilir ve ardından arama sonuçlarını döndürebiliriz.
dilbilgisi
Aşağıdaki, verileri döndürmeden önce sorgu verilerini sıralamak için ORDER BY yan tümcesini kullanan bir SQL SELECT ifadesidir:
SELECT field1, field2,...fieldN table_name1, table_name2... ORDER BY field1, [field2...] [ASC [DESC]]
- Sıralanmış sorgu sonuçlarını döndürmek için herhangi bir alanı sıralama koşulu olarak kullanabilirsiniz.
- Sıralamak için birden fazla alan ayarlayabilirsiniz.
- Artan veya azalan düzende sıralanacak sorgu sonuçlarını ayarlamak için ASC veya DESC anahtar sözcüklerini kullanabilirsiniz.Varsayılan olarak artan sıradadır.
- Koşulları ayarlamak için WHERE...LIKE yan tümceleri ekleyebilirsiniz.
Komut isteminde ORDER BY yan tümcesini kullanma
Aşağıdakiler, MySQL veri tablosu chenweiliang_tbl içindeki verileri okumak için SQL SELECT ifadesindeki ORDER BY yan tümcesini kullanır:
Örnek
Aşağıdaki örnekleri deneyin, sonuçlar artan ve azalan düzende sıralanacaktır.
SQL sıralama
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 tablosundaki tüm verileri okuyun ve gönderim_tarihi alanına göre artan düzende sıralayın.
PHP betiğinde ORDER BY yan tümcesini kullanma
Verileri almak için PHP işlevi mysqli_query() ve aynı SQL SELECT komutunu ORDER BY yan tümcesiyle birlikte kullanabilirsiniz.
Bu işlev, SQL komutlarını yürütmek ve ardından sorgulanan tüm verileri PHP işlevi mysqli_fetch_array() aracılığıyla çıktılamak için kullanılır.
Örnek
Aşağıdaki örneği deneyin, sorgulanan veri, gönderim_tarihi alanına göre azalan sırada döndürülür.
MySQL SİPARİŞ TARAFINDAN 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);
?>Umarım Chen Weiliang'ın blogunda ( https://www.chenweiliang.com/ ) paylaşılan "MySQL Çok Alanlı Koşullu Sıralama? MySQL ORDER BY Azalan/Artan Sıralama Sorgu Deyimi/Fonksiyonu" başlıklı makale size yardımcı olur.
Bu makalenin bağlantısını paylaşmaktan çekinmeyin: https://www.chenweiliang.com/cwl-476.html
