में एक स्ट्रिंग के भीतर एक सबस्ट्रिंग की घटनाओं की संख्या की गणना करना मैं 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
कॉलम के सबस्ट्रिंग की कितनी घटनाएं शामिल होंगी।
संभावित डुप्लिकेट (http://stackoverflow.com/questions/25757194/postgresql -काउंट-संख्या-समय-सबस्ट्रिंग-इन-टेक्स्ट में) –