Maison > base de données > tutoriel mysql > Comment obtenir la position de ligne d'une entrée spécifique dans une requête MySQL « ORDER BY » ?

Comment obtenir la position de ligne d'une entrée spécifique dans une requête MySQL « ORDER BY » ?

DDD
Libérer: 2025-01-18 02:21:08
original
637 Les gens l'ont consulté

How to Get the Row Position of a Specific Entry in a MySQL `ORDER BY` Query?

Sélectionnez la position de la ligne dans la requête MySQL ORDER BY

Supposons qu'il existe une table MySQL avec deux colonnes id et name, et que l'objectif est de récupérer une seule ligne et sa position dans la table triée par la colonne name par ordre croissant. Le format de résultat souhaité est un tableau avec les colonnes id, position et name.

Pour ce faire, vous pouvez utiliser une sous-requête combinée à des variables utilisateur :

<code class="language-sql">SELECT x.id,
       x.position,
       x.name
  FROM (SELECT t.id,
               t.name,
               @rownum := @rownum + 1 AS position
          FROM TABLE t
          JOIN (SELECT @rownum := 0) r
      ORDER BY t.name) x
 WHERE x.name = 'Beta';</code>
Copier après la connexion

Dans cette requête, la sous-requête calcule la position de chaque ligne en fonction de l'ordre des name valeurs. La variable définie par l'utilisateur @rownum est utilisée pour attribuer des positions uniques. La requête principale filtre ensuite les résultats pour obtenir la name valeur "Beta" souhaitée.

Alternativement, la requête suivante fournit des classements qui résolvent les cas portant le même nom :

<code class="language-sql">SELECT t.id,
       (SELECT COUNT(*)
          FROM TABLE x
         WHERE x.name <= t.name) AS position,
       t.name
  FROM TABLE t
 WHERE t.name = 'Beta';</code>
Copier après la connexion

Cette requête calcule la position en comptant le nombre de lignes avec une valeur name inférieure ou égale à la valeur name de la ligne actuelle. Les deux méthodes permettent de déterminer la position des lignes dans un jeu de résultats triés.

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal