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 サイトの他の関連記事を参照してください。