Lors d'une requête avec Django Object-Relational Mapper (ORM), il peut être nécessaire de convertir un champ de caractère (CharField) à un entier. Ceci peut être réalisé en utilisant la fonction Cast, introduite dans Django 1.10.
Dans la requête donnée :
<code class="sql">select student_id from students where student_id like "%97318%" order by CAST(student_id as UNSIGNED) desc;</code>
Le champ student_id, étant un CharField, doit être converti en un entier ( INT) pour le tri. Pour effectuer cette opération dans Django ORM, utilisez la syntaxe suivante :
<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>
La fonction Cast prend deux arguments :
Dans cet exemple, nous convertissons le champ student_id en INT, le convertissant effectivement en un entier pour l'opération de tri. Cela permet un tri précis des résultats à l'aide de la clause order_by.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!