Récupérer un numéro de ligne dans un tri alphabétique

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Récupérer un numéro de ligne dans un tri alphabétique

Re: Récupérer un numéro de ligne dans un tri alphabétique

par macgawel » 27 avr. 2010, 11:15

Effectivement, ça fonctionne si je sors une liste de plusieurs lignes. Mais ce qui m'intéresse actuellement, ça serait de connaitre la position d'une ligne donnée, si je sortais une ligne. Donc il faudrait que je case un WHERE je_id = X dans la requête. Mais du coup, il ne sort qu'une ligne, et sa position est tout le temps égale à 1 : /
C'est un peu normal...
Pour une BDD relationnelle, la notion de "ligne" n'existe pas.
La "ligne" que te renvoie les ROWNUM et autres représente juste le rang dans les résultats.

D'ailleurs, par curiosité : quel est l'usage envisagé ?

Re: Récupérer un numéro de ligne dans un tri alphabétique

par Calimero » 27 avr. 2010, 00:28

Effectivement, ça fonctionne si je sors une liste de plusieurs lignes. Mais ce qui m'intéresse actuellement, ça serait de connaitre la position d'une ligne donnée, si je sortais une ligne. Donc il faudrait que je case un WHERE je_id = X dans la requête. Mais du coup, il ne sort qu'une ligne, et sa position est tout le temps égale à 1 : /
Dans ce cas tu as simplement besoin d'un champ supplémentaire dans ta table (qui te servirait à faire persister cette information éphémère)

Re: Récupérer un numéro de ligne dans un tri alphabétique

par VaN » 26 avr. 2010, 19:30

Effectivement, ça fonctionne si je sors une liste de plusieurs lignes. Mais ce qui m'intéresse actuellement, ça serait de connaitre la position d'une ligne donnée, si je sortais une ligne. Donc il faudrait que je case un WHERE je_id = X dans la requête. Mais du coup, il ne sort qu'une ligne, et sa position est tout le temps égale à 1 : /

Re: Récupérer un numéro de ligne dans un tri alphabétique

par ouckileou » 26 avr. 2010, 15:14

Trouvé sur internet :
SELECT @rownum:=@rownum+1 nb_ligne, p.*
FROM products p,
(SELECT @rownum:=0) r
ORDER BY product_name DESC
nb_ligne id_product product_name
1 4 productD
2 3 productC
3 2 productB
4 1 productA

Récupérer un numéro de ligne dans un tri alphabétique

par VaN » 26 avr. 2010, 13:47

Bonjour,

Disons que j'ai la table suivante :
CREATE TABLE IF NOT EXISTS `structures` (
`je_id` smallint(6) NOT NULL AUTO_INCREMENT,
`je_nom` varchar(100) DEFAULT NULL,
PRIMARY KEY (`je_id`),
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=241 ;

INSERT INTO `structures` (`je_id`, `je_nom`) VALUES
(1, 'structure 2'),
(2, 'structure 3'),
(3, 'structure 1'),
Je voudrais récupérer le numéro de ligne (pas le champ "je_id", vraiment le numéro de ligne) d'une structure donnée dans un tri alphabétique de la table sur le champ "je_nom". Est-ce possible en SQL ?

Par exemple :
SELECT ? FROM structures WHERE je_id = 2 ORDER BY je_nom
devrait me renvoyer 3, mais je ne sais pas par quoi remplacer le "?".