声明
专注于为中小企业提供网站制作、成都网站制作服务,电脑端+手机端+微信端的三站合一,更高效的管理,为中小企业天台免费做网站提供优质的服务。我们立足成都,凝聚了一批互联网行业人才,有力地推动了上千企业的稳健成长,帮助中小企业通过网站建设实现规模扩充和转变。
found_rows()
说明
一个 SELECT
语句可能包含一个 LIMIT
子句,用来限制数据库服务器端返回客户端的行数。在某些情况下,我们需要不再次运行该语句而得知在没有 LIMIT
时到底该语句返回了多少行。我们可以在 SELECT
语句中选择使用 SQL_CALC_FOUND_ROWS
,然后调用 FOUND_ROWS()
函数,获取该语句在没有 LIMIT
时返回的行数。
例如:
obclient> SELECT SQL_CALC_FOUND_ROWS * FROM tbl_name
WHERE id > 100 LIMIT 10;
obclient> SELECT FOUND_ROWS();
第二个 SELECT
语句返回一个数字,表示在没有 LIMIT
子句的情况下,第一个 SELECT
语句返回了多少行。若上述的 SELECT
语句不使用SQL_CALC_FOUND_ROWS
选项,使用LIMIT
和不使用LIMIT
时,FOUND_ROWS()
可能会返回不同的结果。
通过 FOUND_ROWS()
函数返回的有效行数是瞬时的,并且不能越过 SELECT SQL_CALC_FOUND_ROWS
语句后面的语句。如果您后续还需要用到这个值,就需要将其保存。
例如:
obclient> SELECT SQL_CALC_FOUND_ROWS * FROM ... ;
obclient> SET @rows = FOUND_ROWS();
假如您正在使用SQL_CALC_FOUND_ROWS
,系统必须计算出在全部结果集合中有多少行。尽管如此,这也还是比不用 LIMIT
而再次运行查询要快,原因是结果集合不需要被发送到客户端。
SQL_CALC_FOUND_ROWS
和FOUND_ROWS()
在当您希望限制一个查询返回的行数时是很有用的,同时还能不需要再次运行查询就可以确定全部结果集合中的行数。一个例子就是提供页式显示的 Web 脚本,该显示包含显示搜索结果其他部分的页的链接。使用FOUND_ROWS()
可以确定剩下的结果需要多少其他的页。
SQL_CALC_FOUND_ROWS
和 FOUND_ROWS()
的应用对于 UNION
查询比对于简单 SELECT
语句更为复杂,原因是在 UNION
中,LIMIT
可能会出现在多个位置。它可能适用于UNION
中的独立的 SELECT
语句,或是整个的UNION
结果。
SQL_CALC_FOUND_ROWS
对于 UNION
的期望结果是它返回在没有全局的 LIMIT 的条件下而应返回的行数。SQL_CALC_FOUND_ROWS
和 UNION
一同使用的条件是:
SQL_CALC_FOUND_ROWS
关键词必须出现在 UNION
的第一个 SELECT
中。FOUND_ROWS()
的值只有在使用 UNION ALL
时才是精确的。若使用不带 ALL 的 UNION
,则会发生两次删除,而 FOUND_ROWS()
的值只需近似的。UNION
中没有出现 LIMIT
,则 SQL_CALC_FOUND_ROWS
被忽略,返回临时表中创建的用来处理 UNION
的行数。声明
last_insert_id()
说明
返回本 SESSION 最后一次插入的自增字段值,如最近一条 INSERT
插入多条记录,LAST_INSERT_ID()
返回第一条记录的自增字段值。
例子
obclient> select LAST_INSERT_ID();
+------------------+
| LAST_INSERT_ID() |
+------------------+
| 5 |
+------------------+
1 row in set (0.00 sec)
网页名称:创新互联OceanBase教程:OceanBase信息函数
网页链接:http://www.gawzjz.com/qtweb2/news34/1334.html
网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联