您的位置:MYSQL中文网 > oceanbase 函数 OceanBase 信息函数

oceanbase 函数 OceanBase 信息函数

2023-06-27 09:30

oceanbase 函数 OceanBase 信息函数

oceanbase 函数 OceanBase 信息函数

oceanbase 函数

FOUND_ROWS

声明

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()

声明

last_insert_id()

说明

返回本 SESSION 最后一次插入的自增字段值,如最近一条 ​INSERT​ 插入多条记录,​LAST_INSERT_ID()​ 返回第一条记录的自增字段值。

例子

obclient> select LAST_INSERT_ID();
+------------------+
| LAST_INSERT_ID() |
+------------------+
|                5 |
+------------------+
1 row in set (0.00 sec)


阅读全文
以上是MYSQL中文网为你收集整理的oceanbase 函数 OceanBase 信息函数全部内容。
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。
相关文章
  •  OceanBase RESOURCE UNIT

    OceanBase RESOURCE UNIT

    描述该语句用来修改资源单元配置。格式ALTER RESOURCE UNIT unitname MAX_CPU [=] cpunum, MAX_MEMORY [=] memsize, MAX_IOPS [=...

  •  OceanBase FLOOR

    OceanBase FLOOR

    FLOOR函数返回小于等于数值numeric_expression的最大整数。语法FLOOR (numeric_expression)参数参数说明numeric_expression精确...

  •  OceanBase SQRT

    OceanBase SQRT

    ​SQRT​函数返回​n​的平方根。语法SQRT (n)参数参数说明n数值型(NUMBER、FLOAT、BINARY_FLOAT和BINARY_DOUBLE)表达式。n不...

  •  OceanBase REGEXP_REPLACE

    OceanBase REGEXP_REPLACE

    ​REGEXP_REPLACE​函数用于正则表达式替换。语法REGEXP_REPLACE (source_char, pattern [,replace_string [, position [, o...

  • oceanbase 函数 OceanBase 转换函数
  •  OceanBase EXTRACT(datetime)

    OceanBase EXTRACT(datetime)

    ​EXTRACT(datetime)​函数是从指定的时间字段或表达式中抽取年、月、日、时、分、秒等元素。语法EXTRACT(fields FROM datetime)...

  • oceanbase编码方式 OceanBase 编码解码函数
  •  OceanBase TO_TIMESTAMP_TZ

    OceanBase TO_TIMESTAMP_TZ

    ​TO_TIMESTAMP_TZ​函数将字符串转换为​TIMESTAMP WITH TIME ZONE​数据类型,包含时区信息。语法TO_TIMESTAMP_TZ (char,[fmt...

  •  OceanBase LEAST

    OceanBase LEAST

    LEAST函数返回一个或多个表达式列表中的最小值。 数据库使用第一个参数expr来确定返回类型。 如果其余参数的数据类型和第一个参...

  •  OceanBase TO_DATE

    OceanBase TO_DATE

    TO_DATE函数将CHAR、VARCHAR、NCHAR或NVARCHAR2数据类型的字符转换为日期数据类型的值。语法TO_DATE(char [, fmt [, 'nlspar...

© 2024 MYSQL中文网 mysqlcn.com 版权所有 联系我们
桂ICP备12005667号-29 Powered by CMS