ホームページ  >  記事  >  データベース  >  Django ORM クエリで CharField を整数にキャストするにはどうすればよいですか?

Django ORM クエリで CharField を整数にキャストするにはどうすればよいですか?

DDD
DDDオリジナル
2024-11-02 17:55:29750ブラウズ

How to Cast a CharField to an Integer in Django ORM Queries?

Django ORM クエリで Char を整数にキャストする

Django オブジェクト リレーショナル マッパー (ORM) を使用してクエリを実行する場合、文字フィールド (CharField) をキャストする必要がある場合があります。整数に。これは、Django 1.10 で導入された Cast 関数を使用して実現できます。

指定されたクエリ内:

<code class="sql">select student_id from students where student_id like "%97318%" order by CAST(student_id as UNSIGNED) desc;</code>

Student_id フィールドは CharField であるため、整数にキャストする必要があります ( INT) ソート用。 Django ORM でこの操作を実行するには、次の構文を使用します:

<code class="python">from django.db.models import Cast
from django.db.models.functions import Cast

students.objects.annotate(
    student_id_int=Cast('student_id', 'INT')  # Casting CharField to integer
).order_by('-student_id_int')</code>

Cast 関数は 2 つの引数を取ります:

  • キャストされるフィールド名。
  • フィールドをキャストするデータ型。

この例では、student_id フィールドを INT にキャストし、並べ替え操作のために効果的に整数に変換します。これにより、order_by 句を使用して結果を正確に並べ替えることができます。

以上がDjango ORM クエリで CharField を整数にキャストするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。