Эти функции выполняют одно и то же и отличаются только синтаксисом. Документация для strpos()
гласит:
Местоположение указанной подстроки (аналогично позиции (подстрока в строке), но обратите внимание на обратный порядок аргументов)
Причина, по которой они оба существуют и отличаются только синтаксисом в том, что POSITION(str1 IN str2)
определяется стандартом ANSI SQL. Если бы PostgreSQL имел только strpos()
, он не смог бы выполнять запросы и сценарии ANSI SQL.