2012-03-10 13 views
7

próbuję Ostatnia SOMES wartości w wyniku mojej bazy danych, używam tego kodu, ale nie mogę osiągnąć sukces:Multiple IF na MySQL

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: chcę wyświetlić na przykład :

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

Jeśli ktoś ma jakiś pomysł, to bardzo wdzięczny

+0

Cóż, polecenie select nie powoduje żadnych zmian w podstawowych danych. Zamiast tego należy użyć instrukcji UPDATE. –

+0

Przepraszam, miałem na myśli wynik pokazu –

+0

Jakie błędy dostałeś? Czy możesz opublikować oczekiwane i rzeczywiste wyniki? –

Odpowiedz

23

wolałbym użyć 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 

Ale IF będzie również pracować: IF(category_code='HERR1',1, IF(category_code='COLN5',2,'NO'))

4

trzeba gniazdem 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 

Wtedy pierwszy, jeśli nie powiedzie się i zagnieżdżone jeśli oceni

4

Czy to, czego szukali?

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 
1

Spróbuj następującą

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 
0

W moim stole 3 kolumny, jeden jest package_price, employee_percentage, reference_customer_id.

Teraz chcę, jeśli reference_customer_id> 0 to procent pracownika jako referced_commission i jeśli reference_customer_id = 0 to bezpośredni prowizji. Próbowałem poniżej sposób:

SELECT if (reference_customer_id = 0, suma (((package_price employee_percentage)/100)), 0) jako direct_commission, jeśli (reference_customer_id> 0, suma (((package_price employee_percentage)/100)), 0) jako odwołanie_komendy