溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

mysql中計(jì)算sql語(yǔ)句影響行數(shù)的函數(shù)

發(fā)布時(shí)間:2020-08-07 09:47:30 來(lái)源:ITPUB博客 閱讀:206 作者:feiyuzhuanshen 欄目:MySQL數(shù)據(jù)庫(kù)
SELECT語(yǔ)句中經(jīng)??赡苡肔IMIT限制返回行數(shù)。有時(shí)候可能想要知道如果沒(méi)有LIMIT會(huì)返回多少行,但又不想再執(zhí)行一次相同語(yǔ)句。那么,在SELECT查詢(xún)中包含SQL_CALC_FOUND_ROWS選項(xiàng),然后執(zhí)行FOUND_ROWS()就可以了:
mysql> SELECT SQL_CALC_FOUND_ROWS * FROM tbl_name
-> WHERE id > 100 LIMIT 10;
mysql> SELECT FOUND_ROWS()
第二個(gè)SELECT將返回第一條SELECT如果沒(méi)有LIMIT時(shí)返回的行數(shù)
如果在前一條語(yǔ)句中沒(méi)有使用SQL_CALC_FOUND_ROWS選項(xiàng),FOUND_ROWS()將返回前一條語(yǔ)句實(shí)際返回的行數(shù)。
 FOUND_ROWS()得到的數(shù)字是臨時(shí)的,執(zhí)行下一條語(yǔ)句就會(huì)失效。如果想要這個(gè)數(shù)字,就要將它保存下來(lái):
mysql> SELECT SQL_CALC_FOUND_ROWS * FROM ... ;
mysql> SET @rows = FOUND_ROWS();
如果使用 SELECT SQL_CALC_FOUND_ROWS,MySQL必須計(jì)算所有結(jié)果集的行數(shù)。盡管這樣,
總比再執(zhí)行一次不使用LIMIT的查詢(xún)要快多了吧,因?yàn)槟菢咏Y(jié)果集要返回客戶(hù)端的。
[@more@]
向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI