MySQL Order By語法介紹
更新時間:2012年07月29日 23:30:08 作者:
今天在使用ORDER BY的過程中出現(xiàn)了一點問題,發(fā)現(xiàn)之前對ORDER BY理解是錯誤的
今天在使用ORDER BY的過程中出現(xiàn)了一點問題,發(fā)現(xiàn)之前對ORDER BY理解是錯誤的。
之前在w3s網(wǎng)站上看到ORDER BY的用法,以為是對選出來的數(shù)據(jù)按關鍵字升序或者降序排列,結果今天嘗試select數(shù)據(jù)集數(shù)據(jù)的時候,發(fā)現(xiàn)使用ORDER BY 和ORDER BY DESC得出的查詢結果完全不一樣,按照自己之前的理解它們應該是結果相同,而內(nèi)部順序不一樣而已。
問了一下同事,查了一下文檔,才恍然大悟。如果我們在執(zhí)行select語句的時候使用ORDER BY (DESC),那么它首先會對所有記錄按照關鍵字有一個排序,然后依次讀取所需的記錄,而不是先選出記錄再進行降序排列。 一個概念性的錯誤,所以記下來警示自己。
MySQL Order By keyword是用來給記錄中的數(shù)據(jù)進行分類的。
MySQL Order By Keyword根據(jù)關鍵詞分類
ORDER BY keyword是用來給記錄中的數(shù)據(jù)進行分類的。
MySQL Order By語法
SELECT column_name(s)
FROM table_name
ORDER BY column_name
注意:SQL語句是“字母大小寫不敏感”的語句(它不區(qū)分字母的大小寫),即:“ORDER BY”和“order by”是一樣的。
MySQL Order By案例
下面的例子:從“Person”表中選取所有記錄,并將“Age”列進行分類:
<?php
$con = mysql_connect("localhost","peter","abc123");
if (!$con)
{
die('Could not connect: ' . mysql_error());
}
mysql_select_db("my_db", $con);
$result = mysql_query("SELECT * FROM person ORDER BY age");
while($row = mysql_fetch_array($result))
{
echo $row['FirstName']
echo " " . $row['LastName'];
echo " " . $row['Age'];
echo "<br />";
}
mysql_close($con);
?>
[html]
上面的代碼將輸出下面的結果:
Glenn Quagmire 33
Peter Griffin 35
按照升序或者降序進行分類排列
如果你使用了“ORDER BY”關鍵詞,所有記錄將按照默認的升序進行排列(即:從1到9,從a到z)
使用“DESC”關鍵詞可以制定所有的數(shù)據(jù)按照降序排列(即:從9到1,從z到a):
[code]
SELECT column_name(s)
FROM table_name
ORDER BY column_name DESC
MySQL Order By根據(jù)兩列進行分類
很多時候,我們需要同時根據(jù)兩列內(nèi)容(或者更多列)來對數(shù)據(jù)進行分類。當指定的列數(shù)多于一列時,僅在第一列的值完全相同時才參考第二列:
SELECT column_name(s)
FROM table_name
ORDER BY column_name1, column_name2
之前在w3s網(wǎng)站上看到ORDER BY的用法,以為是對選出來的數(shù)據(jù)按關鍵字升序或者降序排列,結果今天嘗試select數(shù)據(jù)集數(shù)據(jù)的時候,發(fā)現(xiàn)使用ORDER BY 和ORDER BY DESC得出的查詢結果完全不一樣,按照自己之前的理解它們應該是結果相同,而內(nèi)部順序不一樣而已。
問了一下同事,查了一下文檔,才恍然大悟。如果我們在執(zhí)行select語句的時候使用ORDER BY (DESC),那么它首先會對所有記錄按照關鍵字有一個排序,然后依次讀取所需的記錄,而不是先選出記錄再進行降序排列。 一個概念性的錯誤,所以記下來警示自己。
MySQL Order By keyword是用來給記錄中的數(shù)據(jù)進行分類的。
MySQL Order By Keyword根據(jù)關鍵詞分類
ORDER BY keyword是用來給記錄中的數(shù)據(jù)進行分類的。
MySQL Order By語法
復制代碼 代碼如下:
SELECT column_name(s)
FROM table_name
ORDER BY column_name
注意:SQL語句是“字母大小寫不敏感”的語句(它不區(qū)分字母的大小寫),即:“ORDER BY”和“order by”是一樣的。
MySQL Order By案例
下面的例子:從“Person”表中選取所有記錄,并將“Age”列進行分類:
復制代碼 代碼如下:
<?php
$con = mysql_connect("localhost","peter","abc123");
if (!$con)
{
die('Could not connect: ' . mysql_error());
}
mysql_select_db("my_db", $con);
$result = mysql_query("SELECT * FROM person ORDER BY age");
while($row = mysql_fetch_array($result))
{
echo $row['FirstName']
echo " " . $row['LastName'];
echo " " . $row['Age'];
echo "<br />";
}
mysql_close($con);
?>
[html]
上面的代碼將輸出下面的結果:
Glenn Quagmire 33
Peter Griffin 35
按照升序或者降序進行分類排列
如果你使用了“ORDER BY”關鍵詞,所有記錄將按照默認的升序進行排列(即:從1到9,從a到z)
使用“DESC”關鍵詞可以制定所有的數(shù)據(jù)按照降序排列(即:從9到1,從z到a):
[code]
SELECT column_name(s)
FROM table_name
ORDER BY column_name DESC
MySQL Order By根據(jù)兩列進行分類
很多時候,我們需要同時根據(jù)兩列內(nèi)容(或者更多列)來對數(shù)據(jù)進行分類。當指定的列數(shù)多于一列時,僅在第一列的值完全相同時才參考第二列:
復制代碼 代碼如下:
SELECT column_name(s)
FROM table_name
ORDER BY column_name1, column_name2
相關文章
win10 mysql 5.6.35 winx64免安裝版配置教程
這篇文章主要為大家詳細介紹了win10 mysql 5.6.35 winx64免安裝版配置教程,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-05-05關于MySQL表中沒有主鍵時如何找到重復的數(shù)據(jù)
這篇文章主要來和探討一下關于MySQL表中沒有主鍵時,該如何找到重復的數(shù)據(jù),文中的示例代碼講解詳細,具有一定的參考價值,需要的可以了解一下2023-06-06當mysqlbinlog版本與mysql不一致時可能導致出哪些問題
這篇文章主要介紹了當mysql服務器為mysql5.6時,mysqlbinlog版本不對可能導致出哪些問題,下面通過模擬2種場景分析此類問題,需要的朋友可以參考下2015-07-07保證MySQL與Redis數(shù)據(jù)一致性的6種實現(xiàn)方案
這篇文章將聚焦在一個非常重要且復雜的問題上:MySQL與Redis數(shù)據(jù)的一致性,當我們在應用中同時使用MySQL和Redis時,如何保證兩者的數(shù)據(jù)一致性呢?下面就來分享幾種實用的解決方案,需要的朋友可以參考下2024-03-03