0
votes

Ordre par liste des valeurs

Je travaille sur la demande de type média social dans lequel les entreprises téléchargeront des messages du côté administrateur et tous les utilisateurs peuvent voir les messages sur le côté de l'utilisateur. Maintenant, j'ai ajouté une option dans les paramètres utilisateur où l'utilisateur peut définir les messages de la société qu'ils souhaitent voir en haut, et je stocke la liste des identifiants de la société et de l'ID utilisateur dans une table de préférence de la valeur , tout en récupérant Les messages que je veux commander par des messages basés sur les identifiants de la société que j'ai stockés pour cet utilisateur particulier.

Après avoir recherché, j'ai trouvé cela exemple : xxx

mais dans cet exemple, ils ont défini des valeurs codées dans Commandez par décodage Mais je veux le faire de manière dynamique à l'aide de la liste des identifiants de la société que j'ai stockés dans la préférence . Comment puis-je atteindre la commande dynamique de décodage?


1 commentaires

La redéfinition des structures de table aurait plus de sens. Tenez les données entières pour les travailleurs au lieu des chaînes et connectez ces valeurs entière en ajoutant une contrainte de clé étrangère en référençant la colonne clé principale d'une table d'appartements parent (par exemple, Préférences comme indiqué dans les réponses) remplacées par ces valeurs tels que 1, 'pêcheur', 2, "médecin" ... .


3 Réponses :


0
votes

Utiliser Préférence Code> Tableau dans Commander par CODE> AS:

SQL>   SELECT *
  2      FROM preference
  3  ORDER BY sort_id;

   SORT_ID JOB
---------- ---------
         1 PRESIDENT
         2 MANAGER
         3 ANALYST
         4 SALESMAN
         5 CLERK

SQL>   SELECT e.ename, e.job
  2      FROM emp e
  3  ORDER BY (SELECT p.sort_id
  4              FROM preference p
  5             WHERE p.job = e.job);

ENAME      JOB
---------- ---------
KING       PRESIDENT
CLARK      MANAGER
BLAKE      MANAGER
JONES      MANAGER
FORD       ANALYST
SCOTT      ANALYST
WARD       SALESMAN
MARTIN     SALESMAN
ALLEN      SALESMAN
TURNER     SALESMAN
JAMES      CLERK
ADAMS      CLERK
MILLER     CLERK
SMITH      CLERK

14 rows selected.

SQL>


0 commentaires

0
votes

Rejoignez les tables. (Faire un rejoindre code> Juste au cas où un travailleur a un travail inconnu / non coffret.)

select w.WorkerName, w.WorkerJob
from Worker w
left join preferences p on w.WorkerJob = p.WorkerJob
order by p.sort_order


0 commentaires

0
votes

Vous pouvez utiliser la table de préférence dans la jointure extérieure et utilisez le code comme suit: xxx


0 commentaires