如何計算PostgreSQL中字符串中子字符串的出現次數?計算PostgreSQL中字符串中子字符串的出現次數
例子:
我有一個表
CREATE TABLE test."user"
(
uid integer NOT NULL,
name text,
result integer,
CONSTRAINT pkey PRIMARY KEY (uid)
)
我想寫一個查詢,以便result
包含列如何子o
列name
包含的許多事件。例如,如果在一行中,name
是hello world
,則列result
應該包含2
,因爲字符串hello world
中有兩個o
。
換句話說,我想編寫一個查詢,將作爲輸入:
和更新result
柱:
我我知道功能regexp_matches
及其g
選項,它指示需要掃描完整(g
=全局)字符串以查看是否存在所有出現的子字符串)。
實施例:
SELECT * FROM regexp_matches('hello world', 'o', 'g');
返回
{o}
{o}
和
SELECT COUNT(*) FROM regexp_matches('hello world', 'o', 'g');
返回
2
但是我不知道如何編寫UPDATE
查詢來更新result
列,以便包含列name
包含的子字符串的出現次數。
的[PostgreSQL的文本中出現的時間串的計數數]可能的複製(http://stackoverflow.com/questions/25757194/postgresql -count-number-of-times-substring-occurrence-in-text) –