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

為了賬號安全,請及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

MySQL按順序獲得行位置

MySQL按順序獲得行位置

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

3 回答

?
湖上湖

TA貢獻(xiàn)2003條經(jīng)驗(yàn) 獲得超2個(gè)贊

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

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


查看完整回答
反對 回復(fù) 2019-08-04
?
慕尼黑8549860

TA貢獻(xiàn)1818條經(jīng)驗(yàn) 獲得超11個(gè)贊

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

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

例如,在您的情況下

查詢1:

SELECT * FROM tbl WHERE name = 'Beta'

查詢2:

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

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




查看完整回答
反對 回復(fù) 2019-08-04
  • 3 回答
  • 0 關(guān)注
  • 441 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號

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