2010-03-14 8 views
2

J'ai cette requête SQL:requête mysql sinon else statemnet?

SELECT 
S.SEARCH, 
S.STATUS, 
C.TITLE AS CategoryName, 
E.SEARCH_ENGINES AS Engine, 
S.RESULTS, 
S.DATE, 
S.TOTAL_RESULTS AS Total, 
S.ID 

FROM 
PLD_SEARCHES AS S 
Join PLD_CATEGORY AS C ON C.ID = S.CATEGORY_ID 
Join PLD_SEARCH_ENGINES AS E ON S.SEARCH_ENGINES_ID = E.ID 
ORDER BY S.DATE ASC 

Je veux identifier si S.STATUS est 1 ou 0 et en fonction de ces valeurs pour revenir COMPLETE ou PENDING dans la requête résultats

Répondre

8
SELECT S.SEARCH, if(S.STATUS=1,'COMPLETE','PENDING') as STATUS, 
C.TITLE AS CategoryName, E.SEARCH_ENGINES AS Engine, S.RESULTS, 
S.DATE, S.TOTAL_RESULTS AS Total, S.ID 
FROM PLD_SEARCHES AS S 
Join PLD_CATEGORY AS C ON C.ID = S.CATEGORY_ID 
Join PLD_SEARCH_ENGINES AS E ON S.SEARCH_ENGINES_ID = E.ID 
ORDER BY S.DATE ASC 

Le IF function est if(x=y, TRUE RESULT, FALSE RESULT)

if(S.STATUS=1,'COMPLETE','PENDING') 
+0

Est-ce que cela fonctionne avec ==? N'est-ce pas un seul? –

+0

@Leneil typo mis à jour :) – Andy

+0

cela fonctionne, merci – user253530

1

Vous pouvez le faire par la suite wa y aussi -

SELECT 
    S.SEARCH, 
    CASE WHEN S.STATUS=1 THEN \'COMPLETE\' 
    ELSE \'PENDING\' END AS S.STATUS, 
    C.TITLE AS CategoryName, 
    E.SEARCH_ENGINES AS Engine, 
    S.RESULTS, 
    S.DATE, 
    S.TOTAL_RESULTS AS Total, 
    S.ID 

    FROM 
    PLD_SEARCHES AS S 
    Join PLD_CATEGORY AS C ON C.ID = S.CATEGORY_ID 
    Join PLD_SEARCH_ENGINES AS E ON S.SEARCH_ENGINES_ID = E.ID 
    ORDER BY S.DATE ASC 

Faites-moi savoir si vous avez un problème.