2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

ozvisionAdvent Calendar 2019

Day 14

Pythonはじめました: SQL結果で取得した値の配列をリスト型への値入れ替えて別のクエリーの IN で使う

Posted at

まずあるSQL結果の値配列をリスト型への値入れ替えていく

サンプルクエリー

users_id_query = '''
SELECT CAST(user_id as char) as user_id FROM users_table;
'''

※前提として user_id がint であるという点が重要。リスト型にしたかったらこれを変換しないとエラーになってしまう。

Python で上記のクエリー実行すておく。

users_ids = execute_query('my_database', users_id_query)

結果は「111,222,333」みたいにしたいわけ:

users_result = [str(x['user_id']) for x in users_ids['rows']]
users_ids_string = ','.join(users_result)

users_ids_string にはほしいような、カンマ区切りの値が見事に入ってくれる。

用意したリストを別のクエリーの IN で使う

サンプルSQL

users_login_query = '''
SELECT count(0) FROM login_log_table where user_id in (user_ids_string)
'''

「user_ids_string」は次で実際の値と置き換えるパラメータ。

entry_users_ids = execute_query('my_database', users_login_query.replace('user_ids_string', entry_users_ids_string))    

実行先を指定しながら値も同時にリプレイス。

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?