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

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

MySQL分頁沒有雙重查詢?

MySQL分頁沒有雙重查詢?

陪伴而非守候 2019-10-08 15:23:19
我想知道是否有一種方法可以從MySQL查詢中獲取結(jié)果數(shù)量,并同時(shí)限制結(jié)果。分頁的工作方式(據(jù)我了解),首先我要做的是query = SELECT COUNT(*) FROM `table` WHERE `some_condition`得到num_rows(query)之后,我得到了結(jié)果數(shù)。但是為了實(shí)際限制結(jié)果,我必須執(zhí)行第二個(gè)查詢,例如:query2 = SELECT COUNT(*) FROM `table` WHERE `some_condition` LIMIT 0, 10我的問題:無論是要檢索要給出的結(jié)果總數(shù),還是要限制單個(gè)查詢中返回的結(jié)果?或更有效的方法。謝謝!
查看完整描述

3 回答

?
手掌心

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

不,這就是要分頁的應(yīng)用程序必須要做的事。它是可靠且防彈的,盡管它使查詢兩次。但是您可以將計(jì)數(shù)緩存幾秒鐘,這會(huì)很有幫助。


另一種方法是使用SQL_CALC_FOUND_ROWS子句,然后調(diào)用SELECT FOUND_ROWS()。除了必須FOUND_ROWS()隨后進(jìn)行調(diào)用之外,還有一個(gè)問題:MySQL中有一個(gè)bug,它會(huì)影響ORDER BY查詢,使其在大表上比兩個(gè)查詢的幼稚方法慢得多。


查看完整回答
反對(duì) 回復(fù) 2019-10-08
?
胡子哥哥

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

我?guī)缀鯊膩頉]有做過兩次查詢。


只需返回比需要多的一行,僅在頁面上顯示10,如果顯示的行多,則顯示“下一步”按鈕。


SELECT x, y, z FROM `table` WHERE `some_condition` LIMIT 0, 11

// iterate through and display 10 rows.


// if there were 11 rows, display a "Next" button.

您的查詢應(yīng)以最相關(guān)的順序返回。通常,大多數(shù)人都不會(huì)在意412中的第236頁。


當(dāng)您進(jìn)行Google搜索時(shí),結(jié)果不在第一頁上,您可能會(huì)轉(zhuǎn)到第二頁,而不是第9頁。


查看完整回答
反對(duì) 回復(fù) 2019-10-08
?
Smart貓小萌

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

避免重復(fù)查詢的另一種方法是,首先使用LIMIT子句獲取當(dāng)前頁面的所有行,然后,如果檢索到最大行數(shù),則僅執(zhí)行第二個(gè)COUNT(*)查詢。


在許多應(yīng)用程序中,最可能的結(jié)果是所有結(jié)果都適合一頁,并且必須進(jìn)行分頁是一種例外,而不是常規(guī)。在這種情況下,第一個(gè)查詢將不會(huì)檢索最大數(shù)量的結(jié)果。


例如,關(guān)于stackoverflow問題的答案很少會(huì)濺到第二頁上。對(duì)答案的評(píng)論很少溢出到5個(gè)左右才能顯示全部。


因此,在這些應(yīng)用程序中,您只需簡單地先使用LIMIT進(jìn)行查詢,然后只要沒有達(dá)到該限制,就可以確切知道有多少行而無需執(zhí)行第二個(gè)COUNT(*)查詢-這應(yīng)該涵蓋大多數(shù)情況。


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

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號(hào)

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