Heim >Datenbank >MySQL-Tutorial >Wie wandelt man ein CharField in Django ORM-Abfragen in eine Ganzzahl um?

Wie wandelt man ein CharField in Django ORM-Abfragen in eine Ganzzahl um?

DDD
DDDOriginal
2024-11-02 17:55:29809Durchsuche

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

Umwandeln von Char in Integer in Django ORM-Abfragen

Bei Abfragen mit Django Object-Relational Mapper (ORM) kann es erforderlich sein, ein Zeichenfeld (CharField) umzuwandeln. zu einer ganzen Zahl. Dies kann mit der Cast-Funktion erreicht werden, die in Django 1.10 eingeführt wurde.

In der angegebenen Abfrage:

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

Das student_id-Feld muss als CharField in eine Ganzzahl umgewandelt werden ( INT) zum Sortieren. Um diesen Vorgang in Django ORM auszuführen, verwenden Sie die folgende Syntax:

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

Die Cast-Funktion benötigt zwei Argumente:

  • Der Feldname, der umgewandelt werden soll.
  • Der Datentyp, in den das Feld umgewandelt werden soll.

In diesem Beispiel wandeln wir das Feld „student_id“ in INT um und wandeln es für den Sortiervorgang effektiv in eine Ganzzahl um. Dies ermöglicht eine genaue Sortierung der Ergebnisse mithilfe der order_by-Klausel.

Das obige ist der detaillierte Inhalt vonWie wandelt man ein CharField in Django ORM-Abfragen in eine Ganzzahl um?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn