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 回答