2009-10-08 9 views
0

Je souhaite ajouter un montant aux lignes renvoyées à partir d'un select. J'ai essayé les choses comme suit:Utilisation de l'alias avec MySql

select *, 
     3 as amount 
    from products 
where etc.... 

... et cela fonctionne. Cependant, je veux faire la même chose pour beaucoup de lignes en une seule fois le long des lignes de:

select *, 
     3 as amount, 
     2 as amount, 
     4 as amount 
    from products 
where id in ('1','2','3') 

Cependant, cela continue d'ajouter des colonnes de quantité et de ne pas modifier les valeurs de chaque ligne retournée.

Le montant est vraiment un montant que les utilisateurs veulent, il pourrait être 1-99-4-2 ou n'importe quel nombre. Je voulais obtenir une table avec les résultats comme: quantité de produits --------------------------- ... 1 ... 99 .. 4 ... 2 Je voulais juste tout le montage dans une colonne c'est pourquoi j'utilisais select? en tant que montant sélectionner? en quantité mais cela ne semble pas fonctionner de cette façon :-)

+1

Pouvez-vous s'il vous plaît dire comment vous vous attendez à ressembler en résultent? –

Répondre

0

Attribuez un nom unique à chaque alias. Par exemple, montant1, amount2, etc.

EDIT> Si vous souhaitez somme des colonnes, utilisez SELECT SUM (montant1, amount2, amount3, ...) DE ...

+0

Cela ressemble à ce dont j'ai besoin. Merci. Y a-t-il un moyen d'obtenir le montant dans une colonne après? – Steve

+0

J'ai édité ma réponse. Est-ce ce que vous cherchez? –

0

Essayez avec:

SELECT *, 3 AS amt1, 2 AS amt2, 4 AS amt3 FROM products WHERE id IN ('1','2','3') 
+0

Cela ressemble à ce dont j'ai besoin. Merci. Y a-t-il un moyen d'obtenir le montant dans une colonne après? Merci d'avoir posté le code aussi, je suis nouveau à cela et ça aide vraiment. – Steve

1
SELECT id, ELT(id, 3, 2, 4) AS amount 
FROM products 
WHERE id IN ('1', '2', '3') 
Questions connexes