我有一个带有文本列的表和另一个带有关键字列的表。现在我想在另一个表中获取包含关键字的所有文本。我尝试使用LIKE运算符,但它不起作用。我的查询看起来像这样
select screen_name from t_tweets_geo where text like '% select keywords from h_trends %';
但是这个查询没有返回任何内容。请帮助
答案 0 :(得分:1)
select在命令中的字符串文字内。因此它没有被执行..
你可以改用
select screen_name from t_tweets_geo,h_trends where text LIKE concat('%',keywords,'%')
请注意,这不会删除重复项。
答案 1 :(得分:0)
您的查询不起作用,因为任何关键字列都不太可能包含字符串''从h_trends中选择关键字'。
一种方法是使用join
:
select g.screen_name
from t_tweets_geo g join
h_trends h
on concat(' ', text, ' ') like concat(' ', h.keywords, ' %') ;
但是,为实体存储关键字的更好方法是使用单独的表,每行screen_name
和keyword
一行。在单个字符串中存储值列表充满了危险。