1

SQL の別の列の文字列を使用して文内を検索しようとしています。私は、キーワードの大きなリストと、1 から 6 までのスケールでのそれらの評価を持っています。Twitter から引き出されたデータを検索して、人々が特定の映画 (Wreck It Ralph など) についてどう思っているかを調べ、その映画に総合スコアを付けようとしています。 . 私が抱えている問題は、Twitter から取得したデータが分割されておらず、完全な文になっていることです。文の中からキーワードを検索する方法がわかりません。動作するクエリは次のとおりです。

SELECT SUM(K.Score) 
FROM wreck_it_ralph WIR, Keyword K
WHERE t_text LIKE '%fantastic%'
       AND K.word = 'fantastic';

連結を使用して試したクエリを次に示しますが、失敗しました。

SELECT SUM(K.Score) 
FROM Wreck_it_Ralph WIR, Keyword k
WHERE t_text LIKE ('%' + k.word + '%');
4

2 に答える 2

1

データベースが異なれば、文字列を連結する方法も異なります。Oracle または Postgres では、これを試してください。

SELECT SUM(K.Score) 
FROM Wreck_it_Ralph WIR, Keyword k
WHERE t_text LIKE '%' || k.word || '%'

SQL Server または Sybase の場合:

SELECT SUM(K.Score) 
FROM Wreck_it_Ralph WIR, Keyword k
WHERE t_text LIKE '%' + k.word + '%'

そしてMySQLでは:

SELECT SUM(K.Score) 
FROM Wreck_it_Ralph WIR, Keyword k
WHERE t_text LIKE concat('%', k.word, '%')

単語の部分一致には問題があることに注意してください。つまり、「嫌い」は「好き」にマッチします。句読点、完全な単語、およびストップリストが考慮されるため、使用しているデータベースの全文機能を調べることをお勧めします。

于 2013-04-24T00:58:00.120 に答える
0

MSSQL-:

SELECT SUM(K.Score) 
FROM Wreck_it_Ralph WIR, Keyword k
WHERE t_text LIKE '%' + k.word + '%';
于 2013-04-24T06:51:34.790 に答える