欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

Mysql怎么根據(jù)ID值的順序返回結(jié)果

MySQL怎么根據(jù)ID值的順序返回結(jié)果,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學(xué)習(xí)下,希望你能有所收獲。

站在用戶的角度思考問題,與客戶深入溝通,找到南岸網(wǎng)站設(shè)計與南岸網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗,讓設(shè)計與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個性化、用戶體驗好的作品,建站類型包括:成都做網(wǎng)站、網(wǎng)站建設(shè)、外貿(mào)營銷網(wǎng)站建設(shè)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機端網(wǎng)站、網(wǎng)站推廣、域名注冊、網(wǎng)頁空間、企業(yè)郵箱。業(yè)務(wù)覆蓋南岸地區(qū)。

今天遇到一個問題 就是有個查詢需要按照指定的 ID 值順序來返回結(jié)果集 其實也可以放在程序中做排序 但是突然想看看能不能直接使用Mysql直接查詢返回 就找了下 還真有輔助函數(shù)實現(xiàn)。

Field()函數(shù)

Mysql中有提供一個函數(shù) Field() 可以按照我們給定的順序來自定義排序

示例:

假設(shè)現(xiàn)在有張城市信息表 叫 regions 有 主鍵 id 和 一個名稱屬性 name, 現(xiàn)在想查詢 ID 為 2、3、1 并按照這個順序返回

select id, name from regions;#id        name
1        北京 2        上海 3        深圳

使用 field()

select id, name from regions order by field(id, 2, 3, 1);#id        name
2        上海 3        深圳 1        北京

這樣就達到按按自定義順序排序的目的了

性能

mysql> explain select id from regions order by field(id, 2, 3, 1);+---+-------------+---------+------+---------------+-----+---------+-----+------+-----------------------------+|id | select_type | table   | type | possible_keys | key | key_len | ref | rows | Extra                       ||-- | ----------- | ------- | ---- | ------------- | --- | ------- | --- | ---- | ----------------------------|  |1  | SIMPLE      | regions | index| NULL          | id  | 4       | NULL| 3    | Using index; Using filesort |+---+-------------+---------+------+---------------+-----+---------+-----+------+-----------------------------+

因為我們在使用 Order By Field 的時候指定了是按照 主鍵ID 來排序 主鍵有個 Primary 的主鍵索引 他會使用id來尋找條件等于 2,3,1 的記錄 所以可以看到在 Extra 中有 Using index 如果你換個別的沒有索引的字段這里就不會有它了。而 Order By 子句不能使用該索引 只能使用 Filesort 排序 也就是 Extra 中有 Using filesort 的原因

大概過程如下:

從id索引的第一個葉子節(jié)點出發(fā),按順序掃描所有葉子節(jié)點
根據(jù)每個葉子節(jié)點記錄的主鍵id去主鍵索引(聚簇索引))找到真實的行數(shù)據(jù)
判斷行數(shù)據(jù)是否滿足 id = 2、3、1 條件,若滿足,則取出并返回

基本要遍歷全表了 有人說 它把選出的記錄的 id 在 FIELD 列表中進行查找,并返回位置,以位置作為排序依據(jù)。
這樣的用法,會導(dǎo)致 Using filesort(當(dāng)然使用了Filesort 并不一定就會慢 有時候比不是用要更快),是效率很低的排序方式。

通常ORDER BY子句會與LIMIT子句配合,只取出部分行。如果只是為了取出top1的行 卻對所有行進行排序,這顯然不是一種高效的做法。

Field() 函數(shù)可以幫助我們在數(shù)據(jù)庫層直接完成一些需要的排序 可以簡化業(yè)務(wù)代碼,但是同時它還會有兼容性和性能問題 建議可以用在數(shù)據(jù)變化頻率低 或者有長時間緩存的地方,而在數(shù)據(jù)量很大的情況下 可以采用數(shù)據(jù)庫查詢出數(shù)據(jù)在到程序中來排序吧

看完上述內(nèi)容是否對您有幫助呢?如果還想對相關(guān)知識有進一步的了解或閱讀更多相關(guān)文章,請關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝您對創(chuàng)新互聯(lián)的支持。

標(biāo)題名稱:Mysql怎么根據(jù)ID值的順序返回結(jié)果
分享地址:http://aaarwkj.com/article44/jegpee.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供全網(wǎng)營銷推廣、品牌網(wǎng)站建設(shè)營銷型網(wǎng)站建設(shè)、企業(yè)網(wǎng)站制作動態(tài)網(wǎng)站、虛擬主機

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

外貿(mào)網(wǎng)站制作
日韩精品人妻一区二区免| 亚洲精品影视一区二区| 一区二区三区国产精品乱码| 在线欧美亚洲观看天堂| 日韩精品高清视频在线观看| 色婷婷精品二区久久蜜臀av| 日韩欧美亚洲制服丝袜| 亚洲欧美综合另类久久| 精品欧美一区二区三久久| 韩国三级网站在线观看视频| 国产精品毛片一区内射| heyzo高清中文字幕在线| 我想看日韩一级黄色片| 国产亚洲中文字幕无线乱码 | 欧美日韩国产精品高清| 亚洲国产欧美日韩在线不卡成人| 天堂av在线网址观看| 国产精品久久久久精品三级中文国| 中文字幕不卡在线观看不卡| 少妇高潮喷水下面的水| 亚洲av偷拍一区二区三区不卡 | 国产自拍偷拍自拍偷拍| 成人免费在线国产视频| 久久亚洲第一视频网站| 91日韩国产中文字幕| 亚洲精品熟女av影院| 放荡精品少妇一区二区三区| 亚洲男人天堂黄色av| 欧美日韩精品人妻一区| 亚洲欧美一区二区中文字幕| av色剧情在线免费观看| 国产激情av网站在线观看| 中文字幕一区二区不卡顿| 在线观看一区二区三区国产视频| 亚洲中文字幕视频在看| 亚洲一级特黄大片在线观看| 精品国产91久久粉嫩| 日韩欧美亚洲综合另类| 亚洲精品熟女国产中文| 亚洲激情欧美激情在线| 欧美精品亚洲精品日韩经典|