2016-06-22 4 views
1

私は、テキスト列とキーワード列を持つテーブルが1つあります。今、私は、別のテーブルにキーワードを含むすべてのテキストを取得したい。 LIKE演算子を使用しようとしましたが、動作しません。クエリは次のようになりますハイブのテキストを比較する

select screen_name from t_tweets_geo where text like '% select keywords from h_trends %'; 

しかし、このクエリは何も返しません。親切に助けてください

答えて

1

selectは、コマンドの文字列リテラルの中にあります。したがって、これは重複を削除しないことを

あなたはこの代わりに

select screen_name from t_tweets_geo,h_trends where text LIKE concat('%',keywords,'%') 

ノートを使用することができます。..実行されていません...実際に私はTwitterのデータを持っていると私が望むすべてが画面を見つけることです

+0

完璧に感謝しています –

+0

少し編集していただきありがとうございました。それ..しかし私はそれを適用しました。 – MysticForce

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_namekeywordごとに1行で、別のテーブルを使用することです。単一の文字列に値のリストを格納することは、危険を伴います。

+0

それらのキーワードをテキスト内で使用している人の名前。あなたのクエリはこのエラーを返しています:FAILED:SemanticException [エラー10017]:行4:8 JOIN ''% ''の左と右のエイリアスが両方とも発生しました –

関連する問題