MariaDB OCTET_LENGTH() 函数使用指南

在 MariaDB 中,OCTET_LENGTH() 是一个内置的字符串函数,它以字节位单位返回给定字符串参数的长度。

OCTET_LENGTH()LENGTHB() 函数完全相同。它也与在 Oracle 模式下的 LENGTH() 函数相同。

如果您要获得字符串中字符数量,请使用 CHAR_LENGTH() 或者 CHARACTER_LENGTH() 函数。

如果您要获得字符串中的位数量,请使用 BIT_LENGTH() 函数。

MariaDB OCTET_LENGTH() 语法

这里是 MariaDB OCTET_LENGTH() 函数的语法:

OCTET_LENGTH(string)

参数

string
必需的。需要计算长度的字符串。参数可以是其他的类型,比如数字或者日期等,OCTET_LENGTH() 函数会首先将其转为字符串再计算长度。

如果您未提供参数, MariaDB 将报告一个错误:ERROR 1582 (42000): Incorrect parameter count in the call to native function 'OCTET_LENGTH'

返回值

MariaDB OCTET_LENGTH(string) 函数返回指定字符串的以字节为单位的长度,即字节的数量。

如果参数为 NULLOCTET_LENGTH() 函数将返回 NULL

MariaDB LENGTHB() 示例

这个语句展示了 MariaDB LENGTHB() 函数的各种基本用法:

SELECT
    OCTET_LENGTH('Hello'),
    OCTET_LENGTH(''),
    OCTET_LENGTH(20),
    OCTET_LENGTH(-20),
    OCTET_LENGTH(+20),
    OCTET_LENGTH(NOW()),
    OCTET_LENGTH(CURDATE()),
    OCTET_LENGTH('你好'),
    OCTET_LENGTH(NULL)\G

输出:

*************************** 1. row ***************************
  OCTET_LENGTH('Hello'): 5
       OCTET_LENGTH(''): 0
       OCTET_LENGTH(20): 2
      OCTET_LENGTH(-20): 3
      OCTET_LENGTH(+20): 2
    OCTET_LENGTH(NOW()): 19
OCTET_LENGTH(CURDATE()): 10
    OCTET_LENGTH('你好'): 6
     OCTET_LENGTH(NULL): NULL

注意:

  • OCTET_LENGTH(-20) 的结果是 3。这是因为 -20 对应的字符串是 '-20', OCTET_LENGTH('-20') 的结果为 3
  • OCTET_LENGTH(+20) 的结果是 2。这是因为 +20 相当于 20,对应的字符串是 '20', OCTET_LENGTH('20') 的结果为 2
  • OCTET_LENGTH(NOW()) 相当于 OCTET_LENGTH('2021-04-02 21:18:57')
  • OCTET_LENGTH('你好') 的结果是 6。这是因为我这里用的编码是 UTF-8,其中一个中文字占用 3 个字节。

结论

MariaDB LENGTHB() 函数以字节为单位返回给定字符串的长度。