Pythonにおける特定の値によるレコードの選択
フィールド値のグループからレコードを選択する必要がある場合は、
コマンドINを適用できます。例えば、
フィールドnameの値が'user1'、
'user3'、または'user4'であるレコードを
選択することができます。それは次のようになります:
WHERE id IN ('user1', 'user3', 'user4')。
原則として、このような場合にはコマンド
ORを使用することもできます。
その場合、最初の例は次のようになります:
WHERE id=1 OR id=3 OR id=7 OR id=14 OR id=28。
しかし、INを使用した方がよりシンプルでエレガントに見えます。
例
フィールドidの値が1、3、5である
ユーザーを選択しましょう:
query = "SELECT * FROM users WHERE id IN (1, 3, 5)"
実行されたコードの結果:
{'id': 1, 'name': 'user1', 'age': 23, 'salary': 400}
{'id': 3, 'name': 'user3', 'age': 23, 'salary': 500}
{'id': 5, 'name': 'user5', 'age': 27, 'salary': 500}
例
コマンドINは、クエリ内の他のコマンドと組み合わせることができます。
前の例を書き直して、ユーザーの年齢が23歳より大きいことも
指定してみましょう:
query = "SELECT * FROM users WHERE id IN (1, 3, 5) AND age>23"
実行されたコードの結果:
{'id': 5, 'name': 'user5', 'age': 27, 'salary': 500}
実践問題
給与が400および900であるユーザーを取得してください。
年齢が25、27、28歳であり、
かつidが2より大きいユーザーを取得してください。