Jak napisać instrukcję IF ELSE w zapytaniu MySQL?
Coś takiego:
mysql_query("...(irrelevant code).. IF(action==2&&state==0){state=1}");
Następnie w mojej tablicy powinienem być w stanie zrobić to:
$row['state']
//this should equal 1, the query should not change anything in the database,
//just the variable for returning the information
mysql
if-statement
Dylan Cross
źródło
źródło
N.id
i(CASE WHEN ...
AS N.state
naAS state
.=
zamiast==
porównania?musisz napisać to w SQL, a nie w stylu C / PHP
do użycia w zapytaniu
IF ( action = 2 AND state = 0 ) THEN SET state = 1
do użytku w procedurach składowanych lub funkcjach
źródło
Szukasz
case
:case when action = 2 and state = 0 then 1 else 0 end as state
MySQL ma
if
składnię (if(action=2 and state=0, 1, 0)
), alecase
jest bardziej uniwersalny.Zwróć uwagę, że
as state
występuje tylko aliasowanie kolumny. Zakładam, że znajduje się to na liście kolumn twojego zapytania SQL.źródło
SELECT col1, col2, IF( action = 2 AND state = 0, 1, 0 ) AS state from tbl1;
LUB
SELECT col1, col2, (case when (action = 2 and state = 0) then 1 else 0 end) as state from tbl1;
oba wyniki będą takie same ....
źródło
zgodnie z podręcznikiem użytkownika mySQL jest to składnia użycia instrukcji if i else:
Więc jeśli chodzi o twoje zapytanie:
lub możesz użyć
IF ((action=2)&&(state=0)) then state = 1; ELSE state = 2; END IF;
W tym linku jest dobry przykład: http://easysolutionweb.com/sql-pl-sql/how-to-use-if-and-else-in-mysql/
źródło