|
MySQL.RU - Webboard
Вернуться
а есть в MySQL оператор IF? (victor) 15/08/2008 - 23:25:28
Re: а есть в MySQL оператор IF? (fAL) 17/08/2008 - 14:05:55
Re: а есть в MySQL оператор IF? (victor) 17/08/2008 - 22:42:12
> Original message text:
> From: victor - 15/08/2008 - 23:25:28
> Subject:а есть в MySQL оператор IF?
> -----------------
> Удивлен, что в MySQL возможностей куда меньше чем в MSSQL. Думал, будет наоборот... :(
> Прочитал, что есть что-то типа IF(expr1,expr2,expr3)
> А что делать, если exprX представляет собой набор SQL-команд?
> Например, нижеприведенный код прекрасно работает в MSSQL, а как его портить на MySQL?
>
> IF @user_pwd=''
> BEGIN
> IF NOT EXISTS (SELECT * FROM TUsers WHERE user_name=@user_name)
> BEGIN
> INSERT INTO TUsers VALUES(@user_name,@user_pwd)
> SELECT 1
> END
> END
> ELSE
> BEGIN
> UPDATE TUsers SET user_pwd=@user_pwd WHERE user_name=@user_name AND user_pwd=''
> SELECT * FROM TUsers WHERE user_name=@user_name AND user_pwd=@user_pwd
> END
>
>
From: fAL - 17/08/2008 - 14:05:55
Subject:а есть в MySQL оператор IF?
-----------------
Не проверял, но вероятнее всего так:
IF @user_pwd='' THEN
IF NOT EXISTS (SELECT * FROM TUsers WHERE user_name=@user_name)THEN
INSERT INTO TUsers VALUES(@user_name,@user_pwd);
SELECT 1;
END IF;
ELSE
UPDATE TUsers SET user_pwd=@user_pwd WHERE user_name=@user_name AND user_pwd='';
SELECT * FROM TUsers WHERE user_name=@user_name AND user_pwd=@user_pwd;
END IF;
читай dev.mysql.com
[Это сообщение - спам!]
Последние сообщения из форума
Уважаемые посетители форума MySQL.RU!
Убедительная просьба, прежде чем задавать свой вопрос в этом форуме, обратите внимание на разделы:
- ответы на наиболее часто задаваемые вопросы - FAQ
- раздел документация
- раздел поиск по сообщениям форума и документации
Также, старайтесь наиболее подробно указывать свою ситуацию (версию операционной системы, версию MySQL,
версию программного обеспечения, по которому возникает вопрос, текст возникающих ошибок, и др.)
Помните, чем конкретнее Вы опишете ситуацию, тем больше шансов получить реальную помощь.
33908
|
|