0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Django ORM のフィルタクエリの仕組み

Posted at

Djangoでは、クエリセットを使ってデータベースからオブジェクトを取得する際に、filter()メソッドを使用してフィルタリングを行います。__でつなげる構文を使うことで、フィールドに対するさまざまな操作が可能です。例えば:

  • exact: 完全一致
  • iexact: 大文字・小文字を区別しない一致
  • lt: より小さい
  • gt: より大きい
  • contains: 部分一致

使用例

# 社員番号が "12345" と一致する従業員を取得
Employee.objects.filter(local_id__exact='12345')

# 氏名が "john" と一致する従業員を取得(大文字・小文字を区別しない)
Employee.objects.filter(first_name_kanji__iexact='john')

# メールアドレスに "gmail" を含む従業員を取得
Employee.objects.filter(email_address__contains='gmail')

# 退職日が2023年1月1日より前の従業員を取得
Employee.objects.filter(removed_at__lt='2023-01-01')

# 退職日が2023年1月1日以下の従業員を取得
Employee.objects.filter(removed_at__lte='2023-01-01')

# 年齢>30の従業員を取得
Employee.objects.filter(age__gt=30)

# 年齢が30歳以上の従業員を取得
Employee.objects.filter(age__gte=30)

# 氏名が "佐藤" で始まる従業員を取得
Employee.objects.filter(first_name_kanji__startswith='佐藤')

# 氏名が "john" で始まる従業員を取得(大文字・小文字を区別しない)
Employee.objects.filter(first_name_kanji__istartswith='john')

# 氏名が "太郎" で終わる従業員を取得
Employee.objects.filter(first_name_kanji__endswith='太郎')

# メールアドレスが "gmail.com" で終わる従業員を取得(大文字・小文字を区別しない)
Employee.objects.filter(email_address__iendswith='gmail.com')

# 指定された社員IDリストに含まれる従業員を取得
Employee.objects.filter(local_id__in=[123, 456, 789])

# 退職日が未設定(NULL)の従業員を取得
Employee.objects.filter(removed_at__isnull=True)

# 退職日が2023年1月1日から2023年12月31日の間にある従業員を取得
Employee.objects.filter(removed_at__range=['2023-01-01', '2023-12-31'])

# 退職日が2023年1月1日である従業員を取得
Employee.objects.filter(removed_at__date='2023-01-01')

# 退職年が2023年の従業員を取得
Employee.objects.filter(removed_at__year=2023)

# 退職月が1月の従業員を取得
Employee.objects.filter(removed_at__month=1)

# 退職日が1日の従業員を取得
Employee.objects.filter(removed_at__day=1)

0
0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?