在 PostgreSQL 中,沒有內(nèi)置的 indexof
函數(shù),但可以使用 position
函數(shù)來實現(xiàn)類似的功能。position
函數(shù)可以返回一個子字符串在另一個字符串中首次出現(xiàn)的位置。
例如,假設(shè)有一個表 example_table
,其中有一個字段 example_field
包含字符串?dāng)?shù)據(jù),你可以使用以下查詢語句來獲取某個子字符串在字段值中的位置:
SELECT position('substring' IN example_field) AS index
FROM example_table;
這將返回 example_field
字段值中第一次出現(xiàn) 'substring'
的位置。如果子字符串不存在,則返回 0。
如果你想獲取所有出現(xiàn)的位置,你可以使用 regexp_matches
函數(shù)結(jié)合正則表達(dá)式來實現(xiàn):
SELECT regexp_matches(example_field, 'substring', 'g') AS indexes
FROM example_table;
這將返回一個包含所有出現(xiàn) 'substring'
的位置的數(shù)組。
請注意,這些查詢只能返回第一次出現(xiàn)的位置或所有出現(xiàn)的位置,并且需要根據(jù)實際情況進(jìn)行調(diào)整。