PHP MySQL 排序依據(jù)
PHP MySQL?Order By 關(guān)鍵詞
ORDER BY 關(guān)鍵詞用于對(duì)記錄集中的數(shù)據(jù)進(jìn)行排序。
ORDER BY 關(guān)鍵詞
ORDER BY 關(guān)鍵詞用于對(duì)記錄集中的數(shù)據(jù)進(jìn)行排序。
ORDER BY 關(guān)鍵詞默認(rèn)對(duì)記錄進(jìn)行升序排序。
如果你想降序排序,請(qǐng)使用 DESC 關(guān)鍵字。
語(yǔ)法
SELECT column_name(s)
FROM table_name
ORDER BY column_name(s) ASC|DESC
這里在說(shuō)下GROUP BY的用法:
GROUP BY最大的作用是與COUNT配合使用
SELECT?city,?COUNT(city)?FROM?cv?GROUP?BY?city;
上面的語(yǔ)句可以統(tǒng)計(jì)出,每個(gè)城市的簡(jiǎn)歷的數(shù)量,一定要注意,你GROUP BY什么字段,才可以去COUNT哪個(gè)字段
簡(jiǎn)單介紹LIMIT用法:
SELECT?col_name?FROM?tbl_name?LIMIT?offset,?rows;
?offset:從符合條件的所有記錄的第幾條開(kāi)始取數(shù)據(jù) ??rows:取多少條數(shù)據(jù) ?
從第1條記錄(0)開(kāi)始取5條記錄
SELECT?*?FROM?cv?LIMIT?5;
SELECT?*?FROM?cv?LIMIT?0,?5;
從第6條記錄(5)開(kāi)始取5條記錄
SELECT?*?FROM?cv?LIMIT?5,?5;
順便提一下having的用法:
having只能使用在group by之后,用來(lái)對(duì)分組的結(jié)果進(jìn)行再篩選
SELECT?city,?COUNT(city)?FROM?cv?GROUP?BY?city?HAVING?COUNT(city)?>?2;
上面的語(yǔ)句表示,先按城市進(jìn)行分組,將分組的結(jié)果再按數(shù)量超過(guò)2的條件進(jìn)行過(guò)濾
注意,因?yàn)槭菍?duì)結(jié)果再篩選,HAVING里使用的字段必須是在SELECT中查詢(xún)結(jié)果中包含的字段,也就是說(shuō)前面的語(yǔ)句中,只有city字段可以作為having的篩選條件,使用其他字段則會(huì)提示未知字段
having和where的區(qū)別:
SELECT?name?FROM?cv?WHERE?age?>?20?GROUP?BY?city;
上面的語(yǔ)句表示,先按age>20的條件進(jìn)行查詢(xún),再對(duì)查詢(xún)的結(jié)果進(jìn)行分組
兩者的區(qū)別是先后順序不同,where是先篩選數(shù)據(jù),having對(duì)分組的結(jié)果進(jìn)行篩選
實(shí)例
下面的實(shí)例選取 "Persons" 表中存儲(chǔ)的所有數(shù)據(jù),并根據(jù) "Age" 列對(duì)結(jié)果進(jìn)行排序:
<?php $con=mysqli_connect("localhost","username","password","database"); // 檢測(cè)連接 if (mysqli_connect_errno()) { echo "連接失敗: " . mysqli_connect_error(); } $result = mysqli_query($con,"SELECT * FROM Persons ORDER BY age"); while($row = mysqli_fetch_array($result)) { echo $row['FirstName']; echo " " . $row['LastName']; echo " " . $row['Age']; echo "<br>"; } mysqli_close($con); ?>
以上結(jié)果將輸出:
Glenn Quagmire 33
Peter Griffin 35
?
根據(jù)兩列進(jìn)行排序
可以根據(jù)多個(gè)列進(jìn)行排序。當(dāng)按照多個(gè)列進(jìn)行排序時(shí),只有第一列的值相同時(shí)才使用第二列:
SELECT column_name(s) FROM table_name ORDER BY column1, column2
?