1
LIKE操作符的select count我已經定義了這些表:與在PostgreSQL
CREATE TABLE domain (
id BIGSERIAL NOT NULL,
name varchar(255) NOT NULL,
PRIMARY KEY (id));
CREATE TABLE url (
id BIGSERIAL NOT NULL,
url text NOT NULL,
PRIMARY KEY (id));
而且我想算爲每個域多少網址。我試圖這樣做:
SELECT
domain.name AS dn,
SELECT COUNT(*) FROM url WHERE url.url ILIKE '%' || dn || '%'
但沒有運氣。有語法錯誤。 如何做正確的?
我剛剛做了一些與split_part的實驗,我認爲你想要3,而不是1。對於'http:// example.com'' split(url,'/',1)'返回'http:'。 'split(url,'/',3)'返回'example.com'。總的來說,如果數據總是包含一個完全形成的模式,我認爲你的答案比我好,而如果數據可能是'http:// example.com'和'example.com'的混合數據,我的答案會更好。 –
@AndyNichols你是對的。用1這個查詢不會返回任何東西,但當我將它更改爲3時,這運行正常 – user2975535
@AndyNichols是的,我沒有想到該協議。如果協議在某些url中缺失,那麼最好的選擇是'regexp_split_to_array'函數 –