2016-11-26 62 views
1

因此,我有這個AOL搜索查詢(2006)的大型泄露數據庫 - 讓我們稱之爲QD - 和一列包含所有我正在尋找在每個這些查詢中的關鍵字。OracleSQL如何在包含關鍵字列表中的關鍵字的大型數據庫中搜索條目

我試着這樣做:

SELECT 
    keywords.keywords AS Keyword, 
    COUNT(QD.query) AS Amount 
FROM QD, keywords 
WHERE QD.query LIKE ('%' keywords.keywords '%') 
GROUP BY keywords.keywords 
ORDER BY COUNT(QD.query) DESC; 

但是,不知怎的,不能正常工作。 任何想法?

+1

這是什麼意思 「不工作」?它是否返回錯誤的結果,沒有結果或錯誤消息(哪個)? –

+0

00907. 00000 - 「缺少右括號」 *原因: *動作: 第4行第41行 – Habubuga

+0

嘗試連接like - 'LIKE('%'|| keywords.keywords ||'%')的參數' 。 –

回答

1

Oracle版本:

SELECT 
    k.keywords AS Keyword, 
    count(k.keywords) AS Amount 
FROM keywords AS k 
JOIN QD AS q 
    ON q.query LIKE ('%' || t2.kwords || '%') 
GROUP BY k.keywords 
ORDER BY count(k.keywords) DESC; 

非常小心使用的情況下,Tabletable,如果你使用"table"那麼你不能沒有"圍繞使用它。(或者至少它看起來像那個)


MySQL的一個,:

好吧,我想我得到了它,使用JOIN的:

SQL Fiddle

查詢1

SELECT 
    k.keywords AS Keyword, 
    count(*) AS Amount 
FROM keywords k 
INNER JOIN QD q 
    ON q.query LIKE CONCAT('%', k.keywords, '%') 
GROUP BY k.keywords 
ORDER BY count(*) DESC 

Results

| keywords | Amount | 
|-----------|--------| 
|  at |  34 | 
|  Donec |  11 | 
|  quis |  10 | 
|  amet |  9 | 
| vulputate |  5 | 
| ornare |  4 | 
|  eros |  2 |