我正在尝试使用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 + '%');
答案 0 :(得分: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, '%')
请注意,您遇到部分字匹配问题。所以,“不喜欢”的东西会匹配“喜欢”。您可能希望查看正在使用的数据库的全文功能,因为这会考虑标点符号,完整单词和停止列表。
答案 1 :(得分:0)
MSSQL - :
SELECT SUM(K.Score)
FROM Wreck_it_Ralph WIR, Keyword k
WHERE t_text LIKE '%' + k.word + '%';