mysql SI Else
Pas certain dans quelle mesure une requête sql peut aller avec des if/else.
J'ai une instruction SELECT simple:
SÉLECTIONNEZ
amount
,transtype
DE
transactions
La transtype
colonne va être un nombre.
Par exemple, 1 = vente, 2 = remboursement, 3 = erreur, 4 = annulé, 5 = autre chose.... et ainsi de suite.
Donc, rien de bien compliqué. Mais la liste tend à se développer pour les rapports raisons. Ce qui est bien.
Pour une requête spécifique sur lequel je travaille, est-il un moyen d'extraire une colonne en tant que l'un des 2 ou trois spécifié des nombres ou du texte?
Par exemple, certains transtype les nombres sont une "perte", tandis que d'autres sont un "gain", et peut-être que d'autres sont "neutres".
Je voudrais extraire une colonne avec seulement les 3, sans l'aide de php à l'intérieur de la table html je lance les lignes.
Si mon explication n'est pas claire, mes excuses. Il était difficile de cracher.
OriginalL'auteur coffeemonitor | 2010-11-14
Vous devez vous connecter pour publier un commentaire.
Utiliser le MySQL CAS() fonction pour un nombre fixe d'arguments. Si la liste est prise en gros, vous devez utiliser une deuxième table et se joindre à eux.
Exemple:
OriginalL'auteur Konerak
Essayez de vous joindre à l'encontre d'une autre table qui contient les types d'opération. Quelque chose comme:
Ensuite modifier votre requête afin d'inclure la jointure:
Il permettra également de préserver l'intégrité relationnelle de la base de données, de sorte que vous pouvez faire sens sans la requête spécifique à "expliquer" vos numéros de magie pour vous.
OriginalL'auteur Joseph Mastey
La
ELT
fonction devrait faire l'affaire:Pas très élégant, et logiquement, je voudrais faire cela dans la logique de la vue, de ne pas la logique de base de données.
OriginalL'auteur deceze
Vous devriez probablement utiliser
ENUM
type pour cette colonne. Elle est limitée à 64 valeurs, cependant, si vous avez besoin de plus, alors vous devriez créer une nouvelle table etJOIN
dans la requête.OriginalL'auteur Crozin