【MySQL】字符串截取函数:substr|substring 的区别

打印 上一主题 下一主题

主题 928|帖子 928|积分 2784

SUBSTR 和 SUBSTRING 是在 SQL 中用于从字符串中提取子字符串的函数,它们在大多数数据库体系中都可用,并且功能相似,但它们的语法和参数顺序可能有所不同。以下是这两个函数的比力:
1. SUBSTR



  • 语法
    1. SUBSTR(string, start, length)
    复制代码
  • 参数

    • string:要从中提取子字符串的原始字符串。
    • start:子字符串开始的位置(通常是从 1 开始计数)。
    • length:要提取的子字符串的长度。

  • 示例
    1. SELECT SUBSTR('Hello World', 1, 5); -- 返回 'Hello'
    复制代码
2. SUBSTRING



  • 语法
    1. SUBSTRING(string, start, length)
    复制代码
  • 参数

    • string:要从中提取子字符串的原始字符串。
    • start:子字符串开始的位置(在某些数据库体系中,如 SQL Server,是从 1 开始计数;而在其他体系中,如 PostgreSQL,是从 0 开始计数)。
    • length:要提取的子字符串的长度。

  • 示例
    1. SELECT SUBSTRING('Hello World', 1, 5); -- 返回 'Hello'
    复制代码
3. 主要区别


  • 参数顺序:尽管这两个函数的目的相同,但它们的参数顺序在不同的数据库体系中可能会有所不同。SUBSTR 的第二个参数是开始位置,而 SUBSTRING 的第二个参数也是开始位置,但不同的数据库体系可能对开始位置的计数方式有不同的解释。
  • 起始索引:在大多数数据库体系中,SUBSTR 和 SUBSTRING 的起始索引都是从 1 开始的。但在某些体系中,如 PostgreSQL,SUBSTRING 的起始索引是从 0 开始的。
  • 数据库支持:固然大多数数据库体系都支持这两个函数中的至少一个,但支持的具体函数可能会有所不同。比方,Oracle 支持 SUBSTR,而 SQL Server 支持 SUBSTRING。
  • 别名:在某些数据库体系中,SUBSTR 可能是 SUBSTRING 的别名,或者反之。
4. 留意事项



  • 在利用这些函数时,紧张的是要了解你正在利用的特定数据库体系的文档,由于不同的数据库体系可能会有不同的实现和限定。
  • 始终检查起始索引和长度参数的有效性,以避免运行时错误。
  • 在处理用户输入时,考虑界限条件,如负数索引或超出字符串长度的索引。
了解这些函数的细微差异对于编写跨数据库体系的可移植 SQL 代码非常紧张。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

徐锦洪

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表