【问题标题】:Difference between substring in PostgresqlPostgresql中子字符串之间的区别
【发布时间】:2018-07-20 04:06:11
【问题描述】:

我最近几天查看了 PostgreSQL 手册,我注意到 substring() 在那里用 substring('string' FROM [int] FOR [int]) 解释。

我通常只使用substring('string', [int], [int]),因为我是从 MySQL 中学到的两种不同的做同样的事情?

【问题讨论】:

  • 您可以根据需要使用substr(string, int, int)。我认为substring(... from ...) 语法源于 SQL 标准(MySQL 并不真正关心的东西)
  • 是的,substring(... from ...) 是 ANSI/ISO SQL 方式。
  • 好吧,首先感谢你们两位,所以你们向我解释了substring(...from...) 是正常的语法,而另一个由 mysql 实现的语法对我来说是有意义的,即使我发现 mysql 与所有其他 SQL 语言,这大多不是一件好事!但是有速度差异吗?或者我可以假设两种语法类型只是调用同一个函数吗?

标签: sql postgresql substring


【解决方案1】:

SUBSTRING(char_exp FROM start_position [FOR length]) 语法是SQL-92 standard 的一部分,我们鼓励您使用它。

这个语法also works in MySQL

【讨论】:

  • 好的,谢谢。我知道substring(.... from ....) 是标准语法,但它有什么不同或者substring('String',int,int) 就像一个别名?
  • 没有区别,只是同一个函数的两种语法。
  • SQL 委员会喜欢在事物中添加单词,大概是因为他们认为这使语法更易于阅读。我最喜欢的是他们随后将相同的关键字用于其他目的,给出完全无意义的语法SUBSTRING('foo' FROM 'pattern' FOR 'escape-character'),它也采用its own special format of regular expression
猜你喜欢
  • 1970-01-01
  • 2017-01-29
  • 2016-03-24
  • 2013-05-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-07-28
  • 2014-06-17
相关资源
最近更新 更多