PostgreSQL'de bir dize içindeki bir dize içindeki olay sayısını nasıl sayabilirim?PostgreSQL'de bir dizedeki bir alt dizenin yineleme sayısını sayma
Örnek:
Ben bir tablo var
CREATE TABLE test."user"
(
uid integer NOT NULL,
name text,
result integer,
CONSTRAINT pkey PRIMARY KEY (uid)
)
result
sütunu içerecek şekilde ben bir sorgu yazmak istiyorum nasıl alt dize o
name
içeren sütun kaç geçişinin. Örneğin, bir satırda hello world
hello world
dizesinde iki sütun olduğundan, result
sütun 2
içermelidir. result
sütunu
ve güncellemek:
I Diğer bir deyişle
, ben girdi olarak alacak bir sorgu yazmaya çalışıyorumregexp_matches
işlevinin ve
g
işlevinin farkında olduğunu bildirir Tam (
g
= global) dizenin, alt dizenin tüm yinelemelerinin varlığı için taranması gerekir).
Örnek:
SELECT * FROM regexp_matches('hello world', 'o', 'g');
döner
{o}
{o}
ve
SELECT COUNT(*) FROM regexp_matches('hello world', 'o', 'g');
döner
2
Ancak, name
numaralı sütunun içerdiği alt tabakada kaç tane oluşacağını içerecek şekilde result
sütununu güncelleştiren UPDATE
sorgusunu nasıl yazacağımı bilmiyorum.
Olası kopyalar (http://stackoverflow.com/questions/25757194/postgresql -sayısı-sayısı-kez-alt--metin-içinde-oluşur) –