que je dois obtenir un jeu d'enregistrements où je remplis le niveau 1 sur le terrain pour tous les 60 dossiers, cela signifie que je dois remplir le terrain niveau1 ainsi:compteurs de position MySQL sous dans Query
- sur pos = 1 et pos = 60 avec level1 = 1
- sur pos = 61 et pos = 120 avec level1 = 2
- sur pos = 121 et pos = 180 avec level1 = 3
... puis: si j'ai laissé ' disons 630 enregistrements que je dois définir pour pos = 601 et 630 level1 = 10 parce que je n'ai pas 660 enregistrements, le 630ème record a fini le niveau.
Est-ce que quelqu'un a une idée de comment cela peut être fait de manière propre?
SET @pos:=0;
SET @posrel:=0;
SET @level1:=0;
SELECT id, member_id, member_name, pos, @posrel:[email protected]+1 AS posrel, @level1:[email protected]+??? AS level1
FROM
(
SELECT id, member_id, LEFT(member_name, LENGTH(member_name)-36) AS member_name, @pos:[email protected]+1 AS pos FROM member_directory WHERE member_name_first= 'A'
) AS directory_listing
HAVING pos % 60 IN(0,1);
Ce n'est pas pour la pagination, non? Parce que si c'est le cas, vous le faites mal. –
@Adrian: non, il est utilisé pour une liste de répertoires (seo). Il y a plus de 100m enregistrements et besoin de les diviser en plusieurs niveaux pour la liste – nenad007