新聞中心
FOUND_ROWS
聲明

專注于為中小企業(yè)提供網(wǎng)站制作、成都網(wǎng)站制作服務(wù),電腦端+手機(jī)端+微信端的三站合一,更高效的管理,為中小企業(yè)天臺(tái)免費(fèi)做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動(dòng)了上千企業(yè)的穩(wěn)健成長(zhǎng),幫助中小企業(yè)通過(guò)網(wǎng)站建設(shè)實(shí)現(xiàn)規(guī)模擴(kuò)充和轉(zhuǎn)變。
?found_rows()?
說(shuō)明
一個(gè) ?SELECT? 語(yǔ)句可能包含一個(gè)? LIMIT ?子句,用來(lái)限制數(shù)據(jù)庫(kù)服務(wù)器端返回客戶端的行數(shù)。在某些情況下,我們需要不再次運(yùn)行該語(yǔ)句而得知在沒有 ?LIMIT? 時(shí)到底該語(yǔ)句返回了多少行。我們可以在 ?SELECT? 語(yǔ)句中選擇使用? SQL_CALC_FOUND_ROWS?,然后調(diào)用? FOUND_ROWS()? 函數(shù),獲取該語(yǔ)句在沒有? LIMIT? 時(shí)返回的行數(shù)。
例如:
obclient> SELECT SQL_CALC_FOUND_ROWS * FROM tbl_name
WHERE id > 100 LIMIT 10;
obclient> SELECT FOUND_ROWS();第二個(gè) ?SELECT? 語(yǔ)句返回一個(gè)數(shù)字,表示在沒有 ?LIMIT? 子句的情況下,第一個(gè) ?SELECT? 語(yǔ)句返回了多少行。若上述的 ?SELECT? 語(yǔ)句不使用SQL_CALC_FOUND_ROWS選項(xiàng),使用?LIMIT?和不使用?LIMIT?時(shí),?FOUND_ROWS()?可能會(huì)返回不同的結(jié)果。
通過(guò) ?FOUND_ROWS() ?函數(shù)返回的有效行數(shù)是瞬時(shí)的,并且不能越過(guò) ?SELECT SQL_CALC_FOUND_ROWS? 語(yǔ)句后面的語(yǔ)句。如果您后續(xù)還需要用到這個(gè)值,就需要將其保存。
例如:
obclient> SELECT SQL_CALC_FOUND_ROWS * FROM ... ;
obclient> SET @rows = FOUND_ROWS();假如您正在使用?SQL_CALC_FOUND_ROWS?,系統(tǒng)必須計(jì)算出在全部結(jié)果集合中有多少行。盡管如此,這也還是比不用? LIMIT ?而再次運(yùn)行查詢要快,原因是結(jié)果集合不需要被發(fā)送到客戶端。
?SQL_CALC_FOUND_ROWS?和?FOUND_ROWS()在當(dāng)您希望限制一個(gè)查詢返回的行數(shù)時(shí)是很有用的,同時(shí)還能不需要再次運(yùn)行查詢就可以確定全部結(jié)果集合中的行數(shù)。一個(gè)例子就是提供頁(yè)式顯示的 Web 腳本,該顯示包含顯示搜索結(jié)果其他部分的頁(yè)的鏈接。使用?FOUND_ROWS()?可以確定剩下的結(jié)果需要多少其他的頁(yè)。
?SQL_CALC_FOUND_ROWS? 和 ?FOUND_ROWS()? 的應(yīng)用對(duì)于 ?UNION? 查詢比對(duì)于簡(jiǎn)單 ?SELECT? 語(yǔ)句更為復(fù)雜,原因是在 ?UNION? 中,?LIMIT? 可能會(huì)出現(xiàn)在多個(gè)位置。它可能適用于?UNION? 中的獨(dú)立的 ?SELECT ?語(yǔ)句,或是整個(gè)的?UNION?結(jié)果。
?SQL_CALC_FOUND_ROWS? 對(duì)于 ?UNION? 的期望結(jié)果是它返回在沒有全局的 LIMIT 的條件下而應(yīng)返回的行數(shù)。?SQL_CALC_FOUND_ROWS? 和 ?UNION? 一同使用的條件是:
- ?
SQL_CALC_FOUND_ROWS? 關(guān)鍵詞必須出現(xiàn)在 ?UNION? 的第一個(gè) ?SELECT? 中。
- ?
FOUND_ROWS()?的值只有在使用 ?UNION ALL? 時(shí)才是精確的。若使用不帶 ALL 的 ?UNION?,則會(huì)發(fā)生兩次刪除,而 ?FOUND_ROWS()? 的值只需近似的。
- 假若 ?
UNION? 中沒有出現(xiàn) ?LIMIT?,則 ?SQL_CALC_FOUND_ROWS? 被忽略,返回臨時(shí)表中創(chuàng)建的用來(lái)處理 ?UNION? 的行數(shù)。
LAST_INSERT_ID()
聲明
?last_insert_id()?
說(shuō)明
返回本 SESSION 最后一次插入的自增字段值,如最近一條 ?INSERT? 插入多條記錄,?LAST_INSERT_ID()? 返回第一條記錄的自增字段值。
例子
obclient> select LAST_INSERT_ID();
+------------------+
| LAST_INSERT_ID() |
+------------------+
| 5 |
+------------------+
1 row in set (0.00 sec) 網(wǎng)頁(yè)題目:創(chuàng)新互聯(lián)OceanBase教程:OceanBase信息函數(shù)
文章網(wǎng)址:http://www.5511xx.com/article/djdjcgi.html


咨詢
建站咨詢
