2010-03-14 5 views
2

У меня есть этот SQL-запрос:mysql query if 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 

Я хочу, чтобы определить, если S.STATUS либо 1 или 0, и в соответствии с этими значениями, чтобы вернуть COMPLETE или PENDING в запросе приводит

ответ

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 

IF function является if(x=y, TRUE RESULT, FALSE RESULT)

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

Работает ли он с ==? Разве это не только один =? –

+0

@Leneil опечатка обновлена ​​:) – Andy

+0

это работает, спасибо – user253530

1

Вы можете сделать это следующим образом: y too -

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 

Дайте мне знать, если у вас есть какие-либо проблемы.