web-dev-qa-db-fra.com

Plusieurs instructions IF sur MYSQL

J'essaie d'afficher certaines valeurs dans le résultat de ma base de données, j'utilise ce code mais je ne peux pas réussir:

SELECT item_code, IF(category_code = 'HERR1', 'NO', 1) OR (category_code = 'COLN5', 'NO', 2) AS category_code, item_name, item_quantity FROM qa_items

EDIT: Je veux afficher par exemple:

If category_code = 'HERR1'
 Display = 1
else if category_code = 'COLN5'
 Display = 2
End If

Si quelqu'un a une idée, je l'apprécierais grandement

16
John Nuñez

Je préfère utiliser CASE:

SELECT item_code, 
CASE category_code 
WHEN 'HERR1' THEN 1
WHEN 'COLN5' THEN 2
ELSE 'NO'
END as category_code, item_name, item_quantity 
FROM qa_items

Mais IF fonctionnera également: IF(category_code='HERR1',1, IF(category_code='COLN5',2,'NO'))

35
a1ex07

Vous devez imbriquer les instructions if

SELECT item_code, IF(category_code = 'HERR1', 'NO', IF(category_code = 'COLN5', 1, 2)) AS category_code, item_name, item_quantity FROM qa_items

Puis le premier if échouera et le if imbriqué évaluera

11
Mark Willis

C'est ce que vous recherchiez?

SELECT
  item_code,
  CASE category_code
    WHEN 'HERR1' THEN 1
    WHEN 'COLN5' THEN 2
    ELSE 'NO'
  END AS category_code,
  item_name,
  item_quantity
FROM qa_items
5
nnichols

Essayez ce qui suit

SELECT item_code, CASE category_code WHEN 'HERR1' THEN 1 WHEN 'COLN5' THEN 0 ELSE 'NONE' END AS category_code, item_name, item_quantity FROM qa_items
1
Chetter Hummin

Veuillez l'utiliser Simple It Works.

 SELECT if(reference_customer_id = 0,sum(((package_priceemployee_percentage)/100)),sum(((package_priceemployee_percentage)/100))) 
    as direct_commission
0
Siva

Vous pouvez essayer ceci. Utilisez IF dans la requête de sélection et mettez à jour la table souhaitée;)

créer un tableau étudiant (marque int, grade char);

insérer dans les valeurs d'étudiant (200, nul), (120, nul), (130, nul);

METTRE À JOUR un étudiant INNER JOIN (sélectionnez s.marks, IF (s.marks> = 200, 'A', IF (s.marks> = 130, 'B', 'P')) AS Grade from étudiant s) b sur a.marks = b.marks SET a.Grade = b.Grade;

0
Kumar harsh

Dans mon tableau à 3 colonnes, on est package_price, employee_percentage, reference_customer_id.

Maintenant, je veux si reference_customer_id > 0 puis pourcentage d'employés comme referenced_commission et si reference_customer_id = 0 puis commission directe. J'ai essayé ci-dessous:

SELECT if(reference_customer_id = 0,  sum(((package_price*employee_percentage)/100)) , 0) as direct_commission, if(reference_customer_id > 0,  sum(((package_price*employee_percentage)/100)) , 0) as reference_commission
0
user5090777