第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

MySQL按順序獲得行位置

MySQL按順序獲得行位置

慕哥9229398 2019-07-11 20:47:43
MySQL按順序獲得行位置使用以下MySQL表:+-----------------------------++ id INT UNSIGNED             ++ name VARCHAR(100)           ++-----------------------------+如何選擇單株行及其在表中其他行中的位置(按name ASC..因此,如果表數(shù)據(jù)如下所示,則按名稱排序時:+-----------------------------++ id | name                   ++-----------------------------++  5 | Alpha                  ++  7 | Beta                   ++  3 | Delta                  ++ .....                       ++  1 | Zed                    ++-----------------------------+如何選擇Beta得到該行當前位置的行?我正在尋找的結(jié)果集如下所示:+-----------------------------++ id | position | name        ++-----------------------------++  7 |        2 | Beta        ++-----------------------------+我可以做一個簡單的SELECT * FROM tbl ORDER BY name ASC然后枚舉PHP中的行,但是僅僅為一行加載一個可能很大的結(jié)果集似乎是浪費的。
查看完整描述

3 回答

?
智慧大石

TA貢獻1946條經(jīng)驗 獲得超3個贊

這是我唯一能想到的辦法:

SELECT `id`,
       (SELECT COUNT(*) FROM `table` WHERE `name` <= 'Beta') AS `position`,
       `name`FROM `table`WHERE `name` = 'Beta'


查看完整回答
反對 回復 2019-07-11
?
qq_笑_17

TA貢獻1818條經(jīng)驗 獲得超7個贊

如果查詢很簡單,并且返回的結(jié)果集的大小可能很大,則可以嘗試將其拆分為兩個查詢。

第一個查詢具有窄帶篩選條件,僅用于檢索該行的數(shù)據(jù),第二個查詢使用COUNT帶著WHERE子句來計算位置。

例如,在您的情況下

查詢1:

SELECT * FROM tbl WHERE name = 'Beta'

查詢2:

SELECT COUNT(1) FROM tbl WHERE name >= 'Beta'

我們在一個有2M記錄的表中使用這種方法,這比OMG的方法更具可伸縮性。


查看完整回答
反對 回復 2019-07-11
  • 3 回答
  • 0 關注
  • 745 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號