Ordre aléatoire par lettre mais par ordre 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 : Ordre aléatoire par lettre mais par ordre alphabétique

Re: Ordre aléatoire par lettre mais par ordre alphabétique

par Mazarini » 23 déc. 2013, 11:27

Il existe une possibilité de conditionner la valeur d'une colonne dans un select. C'est if ou case.

Un truc comme :
select if(chaine < 'X',1,0) as bidon, chaine from table order by bidon, chaine

Par contre je n'ai pas la syntaxe mysql en tête.

Re: Ordre aléatoire par lettre mais par ordre alphabétique

par murdok » 19 déc. 2013, 19:26

tu peux faire une table "LETTRES" avec une colonne "lettre" (une ligne par lettre) et une colonne ordre de type float

update LETTRE set ordre = rand()

puis une jointure sur cette colonne ordonnée par LETTRES.ordre et ta chaine de caractère.

merci beaucoup la demande a changé depuis il s'agit de faire apparaître une lettre aléatoirement, puis ensuite continuer dans l'ordre alphabétique par exemple: la lettre X donc cela donnerait XA XB XC .... YA YB YC.... ZA ZB ZC.... AA AB AC..... BA BB BC...

Est ce que les jointures seraient adéquat pour ce genre de requête?

merci

Re: Ordre aléatoire par lettre mais par ordre alphabétique

par Mazarini » 17 déc. 2013, 17:04

tu peux faire une table "LETTRES" avec une colonne "lettre" (une ligne par lettre) et une colonne ordre de type float

update LETTRE set ordre = rand()

puis une jointure sur cette colonne ordonnée par LETTRES.ordre et ta chaine de caractère.

Ordre aléatoire par lettre mais par ordre alphabétique

par murdok » 17 déc. 2013, 11:00

Bonjour,

je fais une requête dans une base de données, j'aurai besoin que celle ci sorte de manière aléatoire les lettres c'est à dire par exemple B,R,Q,E etc... mais par contre que le résultat reste affiché par ordre alphabétique à l'intérieur c'est à dire BA,BB,BC..... RA,RB,RC......QA,QB,QC.....EA,EB,EC etc...
Je ne vois pas trop comment faire cela sans faire un requête pour chaque lettre de manière aléatoire.

merci