Documentation Home
MySQL 8.3 Reference Manual
Related Documentation Download this Manual
PDF (US Ltr) - 40.8Mb
PDF (A4) - 40.9Mb
Man Pages (TGZ) - 294.0Kb
Man Pages (Zip) - 409.0Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb
Excerpts from this Manual

MySQL 8.3 Reference Manual  /  ...  /  The format_statement() Function

30.4.5.5 format_statement() 函数

给定一个字符串(通常表示 SQL 语句),将其截断到由 statement_truncate_len 配置选项指定的长度,并返回结果。如果字符串短于 statement_truncate_len,则不进行截断。否则,将字符串的中间部分替换为省略号 (...)。

该函数对于从性能模式表中检索的可能很长的语句格式化到已知的固定最大长度非常有用。

参数
  • statement LONGTEXT: 要格式化的语句。

配置选项

format_statement() 操作可以使用以下配置选项或相应的用户定义变量(见 第 30.4.2.1 节,“sys_config 表”)进行修改:

  • statement_truncate_len, @sys.statement_truncate_len

    format_statement() 函数返回的语句的最大长度。较长的语句将被截断到此长度。默认值为 64。

返回值

一个 LONGTEXT 值。

示例

默认情况下,format_statement() 将语句截断到 64 个字符。设置 @sys.statement_truncate_len 可以更改当前会话的截断长度:

mysql> SET @stmt = 'SELECT variable, value, set_time, set_by FROM sys_config';
mysql> SELECT sys.format_statement(@stmt);
+----------------------------------------------------------+
| sys.format_statement(@stmt)                              |
+----------------------------------------------------------+
| SELECT variable, value, set_time, set_by FROM sys_config |
+----------------------------------------------------------+
mysql> SET @sys.statement_truncate_len = 32;
mysql> SELECT sys.format_statement(@stmt);
+-----------------------------------+
| sys.format_statement(@stmt)       |
+-----------------------------------+
| SELECT variabl ... ROM sys_config |
+-----------------------------------+