Est-il possible de trouver la position d'une ligne dans une table mysql?Comment trouver la position d'une ligne dans une table mysql?
Par exemple, si nous avions la requête MySQL
SELECT * FROM `table` WHERE `Date` > X ORDER BY `Date` DESC
Cela permet de sélectionner toutes les lignes créées après X et les organiser par rapport à la date où ils ont été créés. Et si je sais que l'un de ces lignes ID, ce code de requête pourrait-il être modifié afin que je sache à quelle position il se trouve dans cette requête.
Je veux dire que la requête donne 5 lignes et la ligne dont je connais l'ID est l'une d'entre elles, est-il possible de vérifier quelle position elle a dans la requête. Je veux dire, est-ce 1er, 2e, ..., 5e. J'espère que j'ai expliqué clairement mon problème.
En utilisant la suggestion Blizz je trouve que
SET @I=0; SELECT @I:[email protected]+1 AS `I`, `ID`, `From`, `Action`, `To`, `Value`, `Date` FROM `papers` WHERE `Action` = 'Review' GROUP BY `ID` ORDER BY `Date` DESC
Est-ce que ce que je veux mais il ne fonctionne que dans localhost/phpmyadmin et quand je le lance dans localhost/monsite une erreur se disant
Vous avoir une erreur dans votre syntaxe SQL; consultez le manuel qui correspond à votre version du serveur MySQL pour la bonne syntaxe à utiliser près de 'SELECT @I: = @ rang + 1 AS
rank
,ID
,From
,Action
,To
,Value
,Date
FROM `' à la ligne 1
Est-ce que quelqu'un sait pourquoi cela se produit?
espoir Ce soloves votre problème [obtenir la position de la ligne dans la requête MYSQL [dupliquer]] [1] [MySQL obtenir la position de la ligne ORDER BY] [2] [1]: http://stackoverflow.com/questions/7057772/get-row-position-in-mysql-query [2]: http://stackoverflow.com/questions/3614666/mysql-get- row-position-in-order-by –
@Blizz, savez-vous pourquoi cette erreur se produit dans ma question? – user3741635
Votre requête d'exemple est de 2 instructions, que les instructions de requête mysql normales n'exécuteront pas. Vous pouvez le réécrire avec une jointure croisée sur le select l'initialiser la variable @I – Kickstart