私は私の問題について明らかにできることを願っています。ありがとう:)変数%sを使用しないでPythonのSQLステートメント
私はimpala接続(ライブラリ:impala.dbapiインポート接続から)を使用しています。一般 cursor.execute(query.value, (year_var, month_var,day_var))
- それはまた、変数と、うまく動作します:
クエリを実行するためには、私は、実行コマンドを使用しています。問題は、SQL LIKE文を使用したときに始まります(たとえば、%seoのように%sが含まれています)。
第一引数(query.value)は文字列です:
create table bi_db.search_terms as
select search_query,search_contain,count(*) searches
from (
select search_query,
case when lower(search_query) like '%logo%' then 'logo'
when lower(search_query) like '%google%' then 'google'
when lower(search_query) like '%facebook%' then 'facebook'
when lower(search_query) like '%instagram%' then 'instagram'
when lower(search_query) like '%etsy%' then 'etsy'
when lower(search_query) like '%seo%' then 'seo'
when lower(search_query) like '%social media%' then 'social media'
else 'else' end as search_contain
from traffic_db.traffic_parq a
where year = %s AND month = %s AND day = %s AND controller = 'search' and action in ('gigs','users')
and search_query is not null and search_query<>'') t
group by search_query,search_contain
cursor.execute(例えば(year_var、month_var、day_var))の第2引数は%sに参照してください。私は上入れています動的変数を使用するためにクエリが実行されます。
**問題はPythonが私は好きでたstatmentsで%seo
と%social
を持っているので、それが原因だけではなく3の5つの引数を持っていると考えていることである**
誰でもこの種の問題に遭遇しましたか?それを解決する方法を知っていますか?
多くの感謝!
は多分リテラル '%を' %% 'を使います'。 –